const jsdom = require("jsdom");

const {JSDOM} = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
window = dom.window;
global = window
// atob = window.atob
// btoa = window.btoa

function sleep(numberMillis) {
    var now = new Date();
    var exitTime = now.getTime() + numberMillis;
    while (true) {
        now = new Date();
        if (now.getTime() > exitTime)
            return;
    }
};


function get_trace_target() {
    // 宽度
    var witdh = 800
    // 高度
    var height = 600
    // 滑块
    var a = 33
    // 滑框
    var b = 230
    // 边距
    var c = (witdh - b) / 2
    // 最大值
    var d = b + c
    // 最小值1
    var e = b - a + c
    // y 轴 最大值
    var f = 307 + a
    var trace = [];
    var F = 0

    while (true) {
        // y 轴 上下浮动
        var g = Math.ceil(Math.random() * a);
        if (F > d) {
            break
        }
        if (!F) {
            F = F + (c + (a / 2)) + (Math.ceil(Math.random() * 5))
        } else {
            F = F + a + (Math.ceil(Math.random() * 5))
        }

        var S = f + g;
        var T = Math.floor(Math.random() * (20000 - 15000) + 1) + 15000;
        trace.push([0, parseInt(F), parseInt(parseInt(S) / 2), T]);
    }

    return trace
};

function get_mousemove_target(ts) {
    var mt = [];
    var k = Math.floor(Math.random() * 60);
    for (var i = 1; i <= 60; i++) {
        sleep(0.5)
        var page_x = Math.floor(Math.random() * ((1283 - 482) + 1)) + 482;
        var page_y = Math.floor(Math.random() * ((295 - 245) + 1)) + 245;
        var t = Date.now() - ts;
        mt.push(`${page_x}, ${page_y}, ${t}`)
    }
    mt.length > 60 && (mt = mt.slice(0, 60))
    return mt
};

function get_mousedown_target(ts) {
    var d_T = [];
    var list = ['DIV'];
    var k = Math.floor(Math.random() * 3) + 1;
    for (var t = 1; t < k; t++) {
        var page_x = Math.floor(Math.random() * ((1283) - (482 + 1))) + 482;
        var page_y = Math.floor(Math.random() * ((295) - (245 + 1))) + 245;
        var i = Date.now() - ts;
        var s = list[Math.floor(Math.random() * list.length)];
        d_T.push(`${page_x}, ${page_y}, ${s}, ${i}`)
    }
    return d_T
};

function get_keydown_target(ts) {
    var k_T = []
    for (var t = 1; t <= 5; t++) {
        sleep(0.2);
        var i = Date.now() - ts;
        var s = Math.floor(Math.random() * ((90) - (65 + 1))) + 65;
        var r = String(s).charCodeAt();
        k_T.push(`${r}, INPUT, ${i}`)

    }
    return k_T
};

function get_a_click_target(ts) {
    var a_T = [];
    var list = ['BUTTON', 'INPUT', 'DIV', 'A', 'HTML'];
    for (var t = 1; t < 10; t++) {
        var page_x = Math.floor(Math.random() * ((1283) - (482 + 1))) + 482;
        var page_y = Math.floor(Math.random() * ((295) - (245 + 1))) + 245;
        var i = Date.now() - ts;
        var s = list[Math.floor(Math.random() * list.length)];
        a_T.push(`${page_x}, ${page_y}, ${s}, ${i}`)
    }
    return a_T
};

function gen_route() {
    let struct = {
        "trajectory": [{
            "point":
                [],
            "vector": {
                "orientation": "h"
            }
        }
        ],
        "env": {
            "Type": 0,
            "Return": 0,
            "zone": [
                230,
                33
            ],
            "client": [
                844,
                156
            ],
            "count": 1,
            "timeout": 0,
            "Timestamp": [Date.now() - Math.round(Math.random() * 300) - 800, Date.now() - 200]
        }
    }
    let pool = [
        [[0, 858, 178, 32510], [0, 864, 179, 32569], [0, 868, 179, 32586], [0, 874, 180, 32602], [0, 886, 180, 32619], [0, 898, 180, 32636], [0, 911, 180, 32653], [0, 922, 180, 32669], [0, 930, 180, 32685], [0, 937, 181, 32702], [0, 944, 182, 32720], [0, 954, 182, 32737], [0, 964, 182, 32752], [0, 974, 182, 32769], [0, 981, 182, 32786], [0, 990, 183, 32802], [0, 997, 183, 32819], [0, 1006, 183, 32836], [0, 1014, 183, 32853], [0, 1021, 183, 32869], [0, 1027, 183, 32888], [0, 1031, 183, 32903], [0, 1035, 183, 32919], [0, 1039, 183, 32936], [0, 1044, 183, 32952], [0, 1049, 183, 32969], [0, 1054, 183, 32985], [0, 1058, 183, 33003]],
        [[0, 866, 174, 381401], [0, 873, 174, 381498], [0, 877, 175, 381513], [0, 884, 175, 381529], [0, 892, 176, 381547], [0, 897, 177, 381563], [0, 903, 177, 381580], [0, 912, 177, 381597], [0, 922, 179, 381614], [0, 931, 179, 381630], [0, 949, 180, 381647], [0, 963, 180, 381663], [0, 974, 180, 381680], [0, 981, 180, 381696], [0, 989, 180, 381713], [0, 999, 180, 381731], [0, 1004, 180, 381747], [0, 1015, 180, 381763], [0, 1023, 180, 381780], [0, 1033, 180, 381797], [0, 1041, 180, 381813], [0, 1047, 180, 381831], [0, 1053, 180, 381847], [0, 1057, 180, 381863], [0, 1061, 180, 381880], [0, 1064, 181, 381896]],
        [[0, 866, 178, 7052], [0, 873, 177, 7127], [0, 876, 178, 7144], [0, 882, 179, 7160], [0, 890, 180, 7176], [0, 895, 180, 7193], [0, 899, 181, 7210], [0, 902, 181, 7226], [0, 906, 182, 7243], [0, 910, 182, 7260], [0, 915, 183, 7276], [0, 918, 183, 7293], [0, 921, 183, 7309], [0, 922, 184, 7326], [0, 922, 184, 7344], [0, 923, 184, 7544], [0, 923, 183, 7728], [0, 924, 183, 8094], [0, 925, 183, 8110], [0, 926, 183, 8127], [0, 929, 182, 8143], [0, 933, 182, 8160], [0, 939, 181, 8177], [0, 949, 180, 8194], [0, 964, 180, 8211], [0, 985, 179, 8227], [0, 1008, 179, 8243], [0, 1026, 179, 8261], [0, 1042, 180, 8282], [0, 1051, 180, 8293], [0, 1057, 179, 8312], [0, 1063, 179, 8327]],
        [[0, 854, 163, 4912], [0, 861, 165, 5002], [0, 871, 167, 5020], [0, 887, 170, 5036], [0, 907, 172, 5052], [0, 924, 174, 5069], [0, 938, 175, 5086], [0, 949, 175, 5102], [0, 960, 175, 5120], [0, 970, 176, 5135], [0, 979, 176, 5152], [0, 990, 176, 5168], [0, 1000, 176, 5185], [0, 1008, 176, 5202], [0, 1021, 177, 5219], [0, 1029, 177, 5236], [0, 1049, 178, 5252], [0, 1057, 178, 5269]],
        [[0, 862, 175, 3433], [0, 869, 177, 3515], [0, 879, 178, 3532], [0, 890, 179, 3548], [0, 914, 182, 3565], [0, 938, 182, 3582], [0, 954, 183, 3599], [0, 970, 183, 3615], [0, 985, 183, 3631], [0, 997, 183, 3648], [0, 1010, 183, 3665], [0, 1021, 183, 3682], [0, 1031, 182, 3699], [0, 1039, 182, 3715], [0, 1047, 182, 3732], [0, 1059, 182, 3748]],
        [[0, 865, 170, 4035], [0, 875, 172, 4117], [0, 886, 173, 4134], [0, 902, 175, 4150], [0, 921, 176, 4167], [0, 937, 176, 4184], [0, 951, 176, 4200], [0, 962, 177, 4216], [0, 972, 177, 4233], [0, 983, 177, 4251], [0, 993, 177, 4266], [0, 1004, 177, 4283], [0, 1013, 177, 4300], [0, 1023, 177, 4321], [0, 1029, 177, 4333], [0, 1038, 177, 4350], [0, 1045, 177, 4367], [0, 1052, 177, 4384], [0, 1058, 177, 4400], [0, 1064, 177, 4416]],
        [[0, 866, 172, 4264], [0, 874, 173, 4341], [0, 885, 174, 4357], [0, 896, 175, 4374], [0, 906, 175, 4391], [0, 919, 176, 4407], [0, 934, 177, 4424], [0, 949, 177, 4441], [0, 962, 178, 4457], [0, 976, 179, 4474], [0, 988, 180, 4491], [0, 995, 180, 4507], [0, 1001, 180, 4524], [0, 1006, 180, 4541], [0, 1013, 180, 4558], [0, 1020, 180, 4573], [0, 1028, 180, 4590], [0, 1037, 181, 4607], [0, 1045, 181, 4623], [0, 1052, 181, 4640], [0, 1058, 182, 4657], [0, 1063, 182, 4674]],
    ];
    let rmc = 5;
    let movement = pool[Math.round(Math.random() * (pool.length - 1))];

    let sub0 = 0;
    let sub1 = Math.round(Math.random() * 10);
    let sub2 = Math.round(Math.random() * 10);
    let sub3 = Math.round(Math.random() * 10);
    movement.forEach((val) => {
        if (Math.round(Math.random() * 1000) % 10 == 0 && rmc-- > 0) {
            //   console.debug('remove', val);
            return;
        }

        let myx = Math.round(Math.random() * 100) / 1000,
            myy = Math.round(Math.random() * 100) / 1000,
            myt = 0;

        // struct.trajectory[0].point.push([
        //   val[0] - sub0,
        //   Math.round((val[1] + myx) * 1000) / 1000 - sub1,
        //   Math.round((val[2] + myy) * 1000) / 1000 - sub2,
        //   Math.round(val[3] + myt) - sub3
        // ]);
        // struct.trajectory[0].point.push([
        //   val[0],
        //   val[1],
        //   val[2],
        //   val[3],
        // ]);
        struct.trajectory[0].point.push([
            val[0] - sub0,
            val[1] - sub1,
            val[2] - sub2,
            val[3] - sub3,
        ]);
    });
    console.log("getBehavior", JSON['stringify'](struct));
    return struct;
};

function gen_route_index() {
    return {
        "trajectory": [
            {
                "point": [
                    [
                        0,
                        397,
                        266,
                        1540
                    ],
                    [
                        0,
                        405,
                        265,
                        1622
                    ],
                    [
                        0,
                        407,
                        265,
                        1623
                    ],
                    [
                        0,
                        423,
                        264,
                        1624
                    ],
                    [
                        0,
                        436,
                        264,
                        1633
                    ],
                    [
                        0,
                        449,
                        264,
                        1644
                    ],
                    [
                        0,
                        473,
                        264,
                        1657
                    ],
                    [
                        0,
                        503,
                        266,
                        1667
                    ],
                    [
                        0,
                        523,
                        266,
                        1678
                    ],
                    [
                        0,
                        550,
                        266,
                        1691
                    ],
                    [
                        0,
                        574,
                        265,
                        1701
                    ],
                    [
                        0,
                        595,
                        264,
                        1712
                    ]
                ],
                "vector": {
                    "orientation": "h"
                }
            }
        ],
        "env": {
            "Type": 0,
            "Return": 0,
            "zone": [
                230,
                33
            ],
            "client": [
                391,
                244.5
            ],
            "Timestamp": [Date.now() - Math.round(Math.random() * 300) - 800, Date.now() - 200],
            "count": 1,
            "timeout": 0
        }
    }
};

function Yj(sA, x0) {
    var x1;
    var x2;
    var x3;
    var x4;
    var x5;
    var x6;
    var x7;
    var x8;
    x1 = sA["length"] & 3;
    x2 = sA["length"] - x1;
    x3 = x0;
    x5 = 3432918353;
    x6 = 461845907;
    x8 = 0;

    while (x8 < x2) {
        x7 = sA["charCodeAt"](x8) & 255 | (sA["charCodeAt"](++x8) & 255) << 8 | (sA["charCodeAt"](++x8) & 255) << 16 | (sA["charCodeAt"](++x8) & 255) << 24;
        ++x8;
        x7 = (x7 & 65535) * x5 + (((x7 >>> 16) * x5 & 65535) << 16) & 4294967295;
        x7 = x7 << 15 | x7 >>> 17;
        x7 = (x7 & 65535) * x6 + (((x7 >>> 16) * x6 & 65535) << 16) & 4294967295;
        x3 ^= x7;
        x3 = x3 << 13 | x3 >>> 19;
        x4 = (x3 & 65535) * 5 + (((x3 >>> 16) * 5 & 65535) << 16) & 4294967295;
        x3 = (x4 & 65535) + 27492 + (((x4 >>> 16) + 58964 & 65535) << 16);
    }

    x7 = 0;

    switch (x1) {
        case 3:
            x7 ^= (sA["charCodeAt"](x8 + 2) & 255) << 16;

        case 2:
            x7 ^= (sA["charCodeAt"](x8 + 1) & 255) << 8;

        case 1:
            x7 ^= sA["charCodeAt"](x8) & 255;
            x7 = (x7 & 65535) * x5 + (((x7 >>> 16) * x5 & 65535) << 16) & 4294967295;
            x7 = x7 << 15 | x7 >>> 17;
            x7 = (x7 & 65535) * x6 + (((x7 >>> 16) * x6 & 65535) << 16) & 4294967295;
            x3 ^= x7;
    }

    return x3 ^= sA["length"], x3 ^= x3 >>> 16, x3 = (x3 & 65535) * 2246822507 + (((x3 >>> 16) * 2246822507 & 65535) << 16) & 4294967295, x3 ^= x3 >>> 13, x3 = (x3 & 65535) * 3266489909 + (((x3 >>> 16) * 3266489909 & 65535) << 16) & 4294967295, x3 ^= x3 >>> 16, x3 >>> 0;
};
var getCanvasFp = function () {
    return ""
    var x1 = [];
    var x2 = document["createElement"]("canvas");
    x2["width"] = 30;
    x2["height"] = 30;
    x2["style"]["display"] = "inline";
    var x3 = x2["getContext"]('2d');

    if (x3) {
        x3["globalCompositeOperation"] = "multiply";
        x3["font"] = "30px serif";
        x3["textAlign"] = "center";
        x3["textBaseline"] = "middle";
        x3["fillText"]("😜😂😍", 160, 90);
        x3["fillStyle"] = "#dd403b";
        x3["beginPath"]();
        x3["arc"](12, 15, 10, 0, Math['PI'] * 2, !![]);
        x3["closePath"]();
        x3["fill"]();
        x3["fillStyle"] = "#d66500";
        x3["beginPath"]();
        x3["arc"](50, 30, 30, 0, Math['PI'] * 2, !![]);
        x3["closePath"]();
        x3["fill"]();
        var x4 = x3["createLinearGradient"](0, 0, 200, 0);
        x4["addColorStop"](0, "#F4F4F2");
        x4["addColorStop"](1, "#F5E905");
        x3["fillStyle"] = x4;
        x3["beginPath"]();
        x3["arc"](120, 35, 35, 0, Math['PI'] * 2, !![]);
        x3["closePath"]();
        x3["fill"]();
        var x5 = x3["createRadialGradient"](30, 100, 35, 140, 110, 25);
        x5["addColorStop"](0.1, "#490F44");
        x5["addColorStop"](0.5, "white");
        x5["addColorStop"](1, "#FFFFFF");
        x3["fillStyle"] = x5;
        x3["beginPath"]();
        x3["arc"](50, 100, 35, 0, Math['PI'] * 2, !![]);
        x3["fill"]();
        var x6 = x3["createLinearGradient"](0, 0, 200, 0);
        x6["addColorStop"](0, "#A4A3A3");
        x6["addColorStop"](1, "#E10909");
        x3["fillStyle"] = x6;
        x3["beginPath"]();
        x3["arc"](145, 145, 50, 0, Math['PI'] * 2, !![]);
        x3["fill"]();
        x3["shadowColor"] = "#FFD161";
        x3["shadowOffsetX"] = 3;
        x3["shadowOffsetY"] = 3;
        x3["shadowBlur"] = 0;
        x3["fillStyle"] = "#FFBD00";
        x3["font"] = "16px xxx";
        x3["strokeText"]("EAT BETTER LIVE BETTER", 103, 170);
        x3["beginPath"]();
        x3["moveTo"](10, 10);
        x3["bezierCurveTo"](40, 280, 410, 50, 20, 10);
        x3["stroke"]();
        x3["beginPath"]();
        x3["moveTo"](20, 110);
        x3["quadraticCurveTo"](180, 120, 170, 10);
        x3["stroke"]();
    }

    return x2["toDataURL"] && x1["push"](x2["toDataURL"]()),
        x1["join"]('~');
};

function getCanvasFpConfigOther() {
    let tmp_data_url = ""
    return {
        "vendor": "Google Inc. (Apple)",
        "renderer": "ANGLE (Apple, Apple M1 Pro, OpenGL 4.1)",
        "hash": Yj(tmp_data_url, 0),
        // "hash": 1231935373,
        "report": {
            "platform": "MacIntel",
            "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36",
            "contextName": "webgl2",
            "glVersion": "WebGL 2.0 (OpenGL ES 3.0 Chromium)",
            "shadingLanguageVersion": "WebGL GLSL ES 3.00 (OpenGL ES GLSL ES 3.0 Chromium)",
            "vendor": "WebKit",
            "renderer": "WebKit WebGL",
            "unMaskedVendor": "Google Inc. (Apple)",
            "unMaskedRenderer": "ANGLE (Apple, Apple M1 Pro, OpenGL 4.1)",
            "antialias": "Available",
            "angle": "No",
            "majorPerformanceCaveat": "No",
            "maxColorBuffers": 8,
            "redBits": 8,
            "greenBits": 8,
            "blueBits": 8,
            "alphaBits": 8,
            "depthBits": 24,
            "stencilBits": 8,
            "maxRenderBufferSize": 16384,
            "maxCombinedTextureImageUnits": 32,
            "maxCubeMapTextureSize": 16384,
            "maxFragmentUniformVectors": 1024,
            "maxTextureImageUnits": 16,
            "maxTextureSize": 16384,
            "maxVaryingVectors": 31,
            "maxVertexAttributes": 16,
            "maxVertexTextureImageUnits": 16,
            "maxVertexUniformVectors": 1024,
            "aliasedLineWidthRange": "[1, 1]",
            "aliasedPointSizeRange": "[1, 64]",
            "maxViewportDimensions": "[16384, 16384]",
            "maxAnisotropy": 16,
            "vertexShaderBestPrecision": "[-1.7014118346046923e+38, 1.7014118346046923e+38] (23 bit mantissa)",
            "fragmentShaderBestPrecision": "[-1.7014118346046923e+38, 1.7014118346046923e+38] (23 bit mantissa)",
            "fragmentShaderFloatIntPrecision": "highp/highp",
            "webglExtensions": [
                "ANGLE_instanced_arrays",
                "EXT_blend_minmax",
                "EXT_color_buffer_half_float",
                "EXT_disjoint_timer_query",
                "EXT_float_blend",
                "EXT_frag_depth",
                "EXT_shader_texture_lod",
                "EXT_texture_compression_rgtc",
                "EXT_texture_filter_anisotropic",
                "EXT_sRGB",
                "KHR_parallel_shader_compile",
                "OES_element_index_uint",
                "OES_fbo_render_mipmap",
                "OES_standard_derivatives",
                "OES_texture_float",
                "OES_texture_float_linear",
                "OES_texture_half_float",
                "OES_texture_half_float_linear",
                "OES_vertex_array_object",
                "WEBGL_color_buffer_float",
                "WEBGL_compressed_texture_s3tc",
                "WEBGL_compressed_texture_s3tc_srgb",
                "WEBGL_debug_renderer_info",
                "WEBGL_debug_shaders",
                "WEBGL_depth_texture",
                "WEBGL_draw_buffers",
                "WEBGL_lose_context",
                "WEBGL_multi_draw"
            ],
            "maxColorBuffers2": 1,
            "webgl2Extensions": [
                "EXT_color_buffer_float",
                "EXT_color_buffer_half_float",
                "EXT_disjoint_timer_query_webgl2",
                "EXT_float_blend",
                "EXT_texture_compression_rgtc",
                "EXT_texture_filter_anisotropic",
                "EXT_texture_norm16",
                "KHR_parallel_shader_compile",
                "OES_draw_buffers_indexed",
                "OES_texture_float_linear",
                "WEBGL_compressed_texture_s3tc",
                "WEBGL_compressed_texture_s3tc_srgb",
                "WEBGL_debug_renderer_info",
                "WEBGL_debug_shaders",
                "WEBGL_lose_context",
                "WEBGL_multi_draw"
            ],
            "maxVertexUniformComponents": 4096,
            "maxVertexUniformBlocks": 16,
            "maxVertexOutputComponents": 64,
            "maxVaryingComponents": 124,
            "maxFragmentUniformComponents": 4096,
            "maxFragmentUniformBlocks": 16,
            "maxFragmentInputComponents": 128,
            "minProgramTexelOffset": -8,
            "maxProgramTexelOffset": 7,
            "maxDrawBuffers": 8,
            "maxColorAttachments": 8,
            "maxSamples": 4,
            "max3dTextureSize": 2048,
            "maxArrayTextureLayers": 2048,
            "maxTextureLodBias": 16,
            "maxUniformBufferBindings": 72,
            "maxUniformBlockSize": 65536,
            "uniformBufferOffsetAlignment": 256,
            "maxCombinedUniformBlocks": 32,
            "maxCombinedVertexUniformComponents": 266240,
            "maxCombinedFragmentUniformComponents": 266240,
            "maxTransformFeedbackInterleavedComponents": 64,
            "maxTransformFeedbackSeparateAttribs": 4,
            "maxTransformFeedbackSeparateComponents": 4,
            "maxElementIndex": 4294967295,
            "maxServerWaitTimeout": 0,
            "webgl2Functions": [
                "copyBufferSubData",
                "getBufferSubData",
                "blitFramebuffer",
                "framebufferTextureLayer",
                "getInternalformatParameter",
                "invalidateFramebuffer",
                "invalidateSubFramebuffer",
                "readBuffer",
                "renderbufferStorageMultisample",
                "texStorage2D",
                "texStorage3D",
                "texImage3D",
                "texSubImage3D",
                "copyTexSubImage3D",
                "compressedTexImage3D",
                "compressedTexSubImage3D",
                "getFragDataLocation",
                "uniform1ui",
                "uniform2ui",
                "uniform3ui",
                "uniform4ui",
                "uniform1uiv",
                "uniform2uiv",
                "uniform3uiv",
                "uniform4uiv",
                "uniformMatrix2x3fv",
                "uniformMatrix3x2fv",
                "uniformMatrix2x4fv",
                "uniformMatrix4x2fv",
                "uniformMatrix3x4fv",
                "uniformMatrix4x3fv",
                "vertexAttribI4i",
                "vertexAttribI4iv",
                "vertexAttribI4ui",
                "vertexAttribI4uiv",
                "vertexAttribIPointer",
                "vertexAttribDivisor",
                "drawArraysInstanced",
                "drawElementsInstanced",
                "drawRangeElements",
                "drawBuffers",
                "clearBufferiv",
                "clearBufferuiv",
                "clearBufferfv",
                "clearBufferfi",
                "createQuery",
                "deleteQuery",
                "isQuery",
                "beginQuery",
                "endQuery",
                "getQuery",
                "getQueryParameter",
                "createSampler",
                "deleteSampler",
                "isSampler",
                "bindSampler",
                "samplerParameteri",
                "samplerParameterf",
                "getSamplerParameter",
                "fenceSync",
                "isSync",
                "deleteSync",
                "clientWaitSync",
                "waitSync",
                "getSyncParameter",
                "createTransformFeedback",
                "deleteTransformFeedback",
                "isTransformFeedback",
                "bindTransformFeedback",
                "beginTransformFeedback",
                "endTransformFeedback",
                "transformFeedbackVaryings",
                "getTransformFeedbackVarying",
                "pauseTransformFeedback",
                "resumeTransformFeedback",
                "bindBufferBase",
                "bindBufferRange",
                "getIndexedParameter",
                "getUniformIndices",
                "getActiveUniforms",
                "getUniformBlockIndex",
                "getActiveUniformBlockParameter",
                "getActiveUniformBlockName",
                "uniformBlockBinding",
                "createVertexArray",
                "deleteVertexArray",
                "isVertexArray",
                "bindVertexArray"
            ]
        }
    };
    // var x0 = {};
    // x0["glVersion"] = '';
    // var x1 = {};
    // x1["vendor"] = '';
    // x1["renderer"] = '';
    // x1["hash"] = '';
    // x1["report"] = x0;
    // var x2 = x1;

    // try {
    //     var x3 = Yc();

    //     if (x3 === null) {
    //         throw Error("不支持webgl");
    //     }

    //     var x4 = "\n                attribute vec4 a_position;\n                uniform mat4 u_matrix;\n                varying vec4 v_color;\n                void main() {\n                    gl_Position = a_position;\n                    v_color = gl_Position * 0.5 + 0.5;\n                }\n            ";
    //     var x5 = "\n                precision mediump float;\n                varying vec4 v_color;\n                void main() {\n                    gl_FragColor = v_color; // return reddish-purple\n                }\n            ";
    //     var x6 = Y8(x3, x3["VERTEX_SHADER"], x4);
    //     var x7 = Y8(x3, x3["FRAGMENT_SHADER"], x5);
    //     var x8 = Y9(x3, x6, x7);
    //     var x9 = x3["getAttribLocation"](x8, "a_position");
    //     var xj = x3["createBuffer"]();
    //     x3["bindBuffer"](x3["ARRAY_BUFFER"], xj);
    //     var xf = [0, 0, 0, 0.5, 0.7, 0];
    //     x3["bufferData"](x3["ARRAY_BUFFER"], new Float32Array(xf), x3["STATIC_DRAW"]);
    //     x3["viewport"](0, 0, x3["canvas"]["width"], x3["canvas"]["height"]);
    //     x3["clearColor"](0, 0, 0, 0);
    //     x3["clear"](x3["COLOR_BUFFER_BIT"]);
    //     x3["useProgram"](x8);
    //     x3["enableVertexAttribArray"](x9);
    //     x3["bindBuffer"](x3["ARRAY_BUFFER"], xj);
    //     var xc = 2;
    //     var xK = x3["FLOAT"];
    //     var xY = ![];
    //     var xb = 0;
    //     var xI = 0;
    //     x3["vertexAttribPointer"](x9, xc, xK, xY, xb, xI);
    //     var xs = x3["TRIANGLES"];
    //     xI = 0;
    //     var xx = 3;
    //     x3["drawArrays"](xs, xI, xx);
    //     var xi = x3["getExtension"]("WEBGL_debug_renderer_info");
    //     x2["vendor"] = x3["getParameter"](xi["UNMASKED_VENDOR_WEBGL"]) || '';
    //     x2["renderer"] = x3["getParameter"](xi["UNMASKED_RENDERER_WEBGL"]) || '';

    //     if (Yf) {
    //         var xv = Yj(Yf["toDataURL"](), 0);
    //         x2["hash"] = xv || '';
    //     }

    //     Yf = null;
    //     var xR = new Y7();
    //     x2["report"] = xR["getWebGlReport"]();
    // } catch (xy) {
    //     Yf = null;
    //     var xe = xy;
    //     window["Yoda"]["CAT"]["sendLog"](location["href"], "jsError", "wg_" + xe["message"], xe["stack"] || '', "info");
    // }

    // return x2;
};


function get_slider_params(config, href = '', referrer = "https://ecom.meituan.com/bizaccount/login.html?loginByPhoneNumber=true&isProduction=true&epassportParams=%3Fbg_source%3D1%26service%3Dcom.sankuai.meishi.fe.ecom%26part_type%3D0%26feconfig%3Dbssoify%26biz_line%3D1%26continue%3Dhttps%253A%252F%252Fecom.meituan.com%252Fbizaccount%252Fbiz-choice.html%253Fredirect_uri%253Dhttps%25253A%25252F%25252Fecom.meituan.com%25252Fmeishi%25252F%2526_t%253D1678415645931%2526target%253Dhttps%25253A%25252F%25252Fecom.meituan.com%25252Fmeishi%25252F%26leftBottomLink%3D%26signUpTarget%3Dself") {
    config = JSON.parse(config);
    function b3(xK, xY) {
        if (xK === undefined || xK === null || xK["length"] === 0) {
            return xK;
        }

        return xK = b4(xK),
            xY = b4(xY),
            b5(b8(b6(xK, !![]), b7(b6(xY, ![]))), ![]);
    }

    function b4(xK) {
        if (/^[\x00-\x7f]*$/["test"](xK)) {
            return xK;
        }

        var xY = [];
        var xb = xK["length"];

        for (var xI = 0, xs = 0; xI < xb; ++xI,
            ++xs) {
            var xx = xK["charCodeAt"](xI);

            if (xx < 128) {
                xY[xs] = xK["charAt"](xI);
            } else {
                if (xx < 2048) {
                    xY[xs] = String["fromCharCode"](192 | xx >> 6, 128 | xx & 63);
                } else {
                    if (xx < 55296 || xx > 57343) {
                        xY[xs] = String["fromCharCode"](224 | xx >> 12, 128 | xx >> 6 & 63, 128 | xx & 63);
                    } else {
                        if (xI + 1 < xb) {
                            var xi = xK["charCodeAt"](xI + 1);

                            if (xx < 56320 && 56320 <= xi && xi <= 57343) {
                                var xv = ((xx & 1023) << 10 | xi & 1023) + 65536;
                                xY[xs] = String["fromCharCode"](240 | xv >> 18 & 63, 128 | xv >> 12 & 63, 128 | xv >> 6 & 63, 128 | xv & 63);
                                ++xI;
                                continue;
                            }
                        }
                    }
                }
            }
        }

        return xY["join"]('');
    }

    function b5(xK, xY) {
        var xb = xK["length"];
        var xI = xb << 2;

        if (xY) {
            var xs = xK[xb - 1];
            xI -= 4;

            if (xs < xI - 3 || xs > xI) {
                return null;
            }

            xI = xs;
        }

        for (var xx = 0; xx < xb; xx++) {
            xK[xx] = String["fromCharCode"](xK[xx] & 255, xK[xx] >>> 8 & 255, xK[xx] >>> 16 & 255, xK[xx] >>> 24 & 255);
        }

        var xi = xK["join"]('');

        if (xY) {
            return xi["substring"](0, xI);
        }

        return xi;
    }

    function b6(xK, xY) {
        var xb = xK["length"];
        var xI = xb >> 2;
        (xb & 3) !== 0 && ++xI;
        var xs;
        xY ? (xs = new Array(xI + 1),
            xs[xI] = xb) : xs = new Array(xI);

        for (var xx = 0; xx < xb; ++xx) {
            xs[xx >> 2] |= xK["charCodeAt"](xx) << ((xx & 3) << 3);
        }

        return xs;
    }

    function b7(xK) {
        return xK["length"] < 4 && (xK["length"] = 4),
            xK;
    }

    function b8(xK, xY) {
        var xb = xK["length"];
        var xI = xb - 1;
        var xs;
        var xx;
        var xi;
        var xv;
        var xR;
        var xe;
        xx = xK[xI];
        xi = 0;

        for (xe = Math["floor"](6 + 52 / xb) | 0; xe > 0; --xe) {
            xi = xi + 2654435769 & 4294967295;
            xv = xi >>> 2 & 3;

            for (xR = 0; xR < xI; ++xR) {
                xs = xK[xR + 1];
                xx = xK[xR] = xK[xR] + ((xx >>> 5 ^ xs << 2) + (xs >>> 3 ^ xx << 4) ^ (xi ^ xs) + (xY[xR & 3 ^ xv] ^ xx)) & 4294967295;
            }

            xs = xK[0];
            xx = xK[xI] = xK[xI] + ((xx >>> 5 ^ xs << 2) + (xs >>> 3 ^ xx << 4) ^ (xi ^ xs) + (xY[xI & 3 ^ xv] ^ xx)) & 4294967295;
        }

        return xK;
    }

    var b9 = function () {
        var xK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"["split"]('');
        return function (xY) {
            var xb;
            var xI;
            var xs;
            var xx;
            var xi;
            var xv;
            var xR;
            xI = xs = 0;
            xx = xY["length"];
            xi = xx % 3;
            xx = xx - xi;
            xv = xx / 3 << 2;
            xi > 0 && (xv += 4);
            xb = new Array(xv);

            while (xI < xx) {
                xR = xY["charCodeAt"](xI++) << 16 | xY["charCodeAt"](xI++) << 8 | xY["charCodeAt"](xI++);
                xb[xs++] = xK[xR >> 18] + xK[xR >> 12 & 63] + xK[xR >> 6 & 63] + xK[xR & 63];
            }

            if (xi === 1) {
                xR = xY["charCodeAt"](xI++);
                xb[xs++] = xK[xR >> 2] + xK[(xR & 3) << 4] + '==';
            } else {
                xi === 2 && (xR = xY["charCodeAt"](xI++) << 8 | xY["charCodeAt"](xI++),
                    xb[xs++] = xK[xR >> 10] + xK[xR >> 4 & 63] + xK[(xR & 15) << 2] + '=');
            }

            return xb["join"]('');
        }
            ;
    }();

    function bj(xK, xY) {
        return b9(b3(xK, xY));
    }

    function bt(xv) {
        if (xv) {
            var xR = btoa(xv);
            return xR["replace"](/=/g, ')')["replace"](/\+/g, '(');
        }
        return xv;
    }

    var bv = function xs(xx) {
        try {
            var xi = '/';
            var xv = '+';
            var xR = xx["split"]('');
            var xe = [];

            for (var xy = 0; xy < xR["length"]; xy++) {
                var xk = xR[xy];
                xk === xi && (xk = '(');
                xk === xv && (xk = ')');
                xe["push"](xk);
            }

            return xe["reverse"]()["join"]('');
        } catch (xM) {
            var xa = xM;
            bk(xa["message"], xa["stack"] || '');
        }

        return '';
    };

    var Ki = 8;

    function Ke(sN, so, sA, x0, x1, x2) {
        return Kt(KH(Kt(Kt(so, sN), Kt(x0, x2)), x1), sA);
    };

    function KH(sN, so) {
        return sN << so | sN >>> 32 - so;
    };

    function Ky(sN, so, sA, x0, x1, x2, x3) {
        return Ke(so & sA | ~so & x0, sN, so, x1, x2, x3);
    };

    function KM(sN, so, sA, x0, x1, x2, x3) {
        return Ke(sA ^ (so | ~x0), sN, so, x1, x2, x3);
    };

    function Kk(sN, so, sA, x0, x1, x2, x3) {
        return Ke(so & x0 | sA & ~x0, sN, so, x1, x2, x3);
    }

    function Ka(sN, so, sA, x0, x1, x2, x3) {
        return Ke(so ^ sA ^ x0, sN, so, x1, x2, x3);
    }


    function Kt(sN, so) {
        var sA = (sN & 65535) + (so & 65535);
        var x0 = (sN >> 16) + (so >> 16) + (sA >> 16);
        return x0 << 16 | sA & 65535;
    }

    function KR(sN, so) {
        sN[so >> 5] |= 128 << so % 32;
        sN[(so + 64 >>> 9 << 4) + 14] = so;
        var sA = 1732584193;
        var x0 = -271733879;
        var x1 = -1732584194;
        var x2 = 271733878;

        for (var x3 = 0; x3 < sN["length"]; x3 += 16) {
            var x4 = sA;
            var x5 = x0;
            var x6 = x1;
            var x7 = x2;
            sA = Ky(sA, x0, x1, x2, sN[x3 + 0], 7, -680876936);
            x2 = Ky(x2, sA, x0, x1, sN[x3 + 1], 12, -389564586);
            x1 = Ky(x1, x2, sA, x0, sN[x3 + 2], 17, 606105819);
            x0 = Ky(x0, x1, x2, sA, sN[x3 + 3], 22, -1044525330);
            sA = Ky(sA, x0, x1, x2, sN[x3 + 4], 7, -176418897);
            x2 = Ky(x2, sA, x0, x1, sN[x3 + 5], 12, 1200080426);
            x1 = Ky(x1, x2, sA, x0, sN[x3 + 6], 17, -1473231341);
            x0 = Ky(x0, x1, x2, sA, sN[x3 + 7], 22, -45705983);
            sA = Ky(sA, x0, x1, x2, sN[x3 + 8], 7, 1770035416);
            x2 = Ky(x2, sA, x0, x1, sN[x3 + 9], 12, -1958414417);
            x1 = Ky(x1, x2, sA, x0, sN[x3 + 10], 17, -42063);
            x0 = Ky(x0, x1, x2, sA, sN[x3 + 11], 22, -1990404162);
            sA = Ky(sA, x0, x1, x2, sN[x3 + 12], 7, 1804603682);
            x2 = Ky(x2, sA, x0, x1, sN[x3 + 13], 12, -40341101);
            x1 = Ky(x1, x2, sA, x0, sN[x3 + 14], 17, -1502002290);
            x0 = Ky(x0, x1, x2, sA, sN[x3 + 15], 22, 1236535329);
            sA = Kk(sA, x0, x1, x2, sN[x3 + 1], 5, -165796510);
            x2 = Kk(x2, sA, x0, x1, sN[x3 + 6], 9, -1069501632);
            x1 = Kk(x1, x2, sA, x0, sN[x3 + 11], 14, 643717713);
            x0 = Kk(x0, x1, x2, sA, sN[x3 + 0], 20, -373897302);
            sA = Kk(sA, x0, x1, x2, sN[x3 + 5], 5, -701558691);
            x2 = Kk(x2, sA, x0, x1, sN[x3 + 10], 9, 38016083);
            x1 = Kk(x1, x2, sA, x0, sN[x3 + 15], 14, -660478335);
            x0 = Kk(x0, x1, x2, sA, sN[x3 + 4], 20, -405537848);
            sA = Kk(sA, x0, x1, x2, sN[x3 + 9], 5, 568446438);
            x2 = Kk(x2, sA, x0, x1, sN[x3 + 14], 9, -1019803690);
            x1 = Kk(x1, x2, sA, x0, sN[x3 + 3], 14, -187363961);
            x0 = Kk(x0, x1, x2, sA, sN[x3 + 8], 20, 1163531501);
            sA = Kk(sA, x0, x1, x2, sN[x3 + 13], 5, -1444681467);
            x2 = Kk(x2, sA, x0, x1, sN[x3 + 2], 9, -51403784);
            x1 = Kk(x1, x2, sA, x0, sN[x3 + 7], 14, 1735328473);
            x0 = Kk(x0, x1, x2, sA, sN[x3 + 12], 20, -1926607734);
            sA = Ka(sA, x0, x1, x2, sN[x3 + 5], 4, -378558);
            x2 = Ka(x2, sA, x0, x1, sN[x3 + 8], 11, -2022574463);
            x1 = Ka(x1, x2, sA, x0, sN[x3 + 11], 16, 1839030562);
            x0 = Ka(x0, x1, x2, sA, sN[x3 + 14], 23, -35309556);
            sA = Ka(sA, x0, x1, x2, sN[x3 + 1], 4, -1530992060);
            x2 = Ka(x2, sA, x0, x1, sN[x3 + 4], 11, 1272893353);
            x1 = Ka(x1, x2, sA, x0, sN[x3 + 7], 16, -155497632);
            x0 = Ka(x0, x1, x2, sA, sN[x3 + 10], 23, -1094730640);
            sA = Ka(sA, x0, x1, x2, sN[x3 + 13], 4, 681279174);
            x2 = Ka(x2, sA, x0, x1, sN[x3 + 0], 11, -358537222);
            x1 = Ka(x1, x2, sA, x0, sN[x3 + 3], 16, -722521979);
            x0 = Ka(x0, x1, x2, sA, sN[x3 + 6], 23, 76029189);
            sA = Ka(sA, x0, x1, x2, sN[x3 + 9], 4, -640364487);
            x2 = Ka(x2, sA, x0, x1, sN[x3 + 12], 11, -421815835);
            x1 = Ka(x1, x2, sA, x0, sN[x3 + 15], 16, 530742520);
            x0 = Ka(x0, x1, x2, sA, sN[x3 + 2], 23, -995338651);
            sA = KM(sA, x0, x1, x2, sN[x3 + 0], 6, -198630844);
            x2 = KM(x2, sA, x0, x1, sN[x3 + 7], 10, 1126891415);
            x1 = KM(x1, x2, sA, x0, sN[x3 + 14], 15, -1416354905);
            x0 = KM(x0, x1, x2, sA, sN[x3 + 5], 21, -57434055);
            sA = KM(sA, x0, x1, x2, sN[x3 + 12], 6, 1700485571);
            x2 = KM(x2, sA, x0, x1, sN[x3 + 3], 10, -1894986606);
            x1 = KM(x1, x2, sA, x0, sN[x3 + 10], 15, -1051523);
            x0 = KM(x0, x1, x2, sA, sN[x3 + 1], 21, -2054922799);
            sA = KM(sA, x0, x1, x2, sN[x3 + 8], 6, 1873313359);
            x2 = KM(x2, sA, x0, x1, sN[x3 + 15], 10, -30611744);
            x1 = KM(x1, x2, sA, x0, sN[x3 + 6], 15, -1560198380);
            x0 = KM(x0, x1, x2, sA, sN[x3 + 13], 21, 1309151649);
            sA = KM(sA, x0, x1, x2, sN[x3 + 4], 6, -145523070);
            x2 = KM(x2, sA, x0, x1, sN[x3 + 11], 10, -1120210379);
            x1 = KM(x1, x2, sA, x0, sN[x3 + 2], 15, 718787259);
            x0 = KM(x0, x1, x2, sA, sN[x3 + 9], 21, -343485551);
            sA = Kt(sA, x4);
            x0 = Kt(x0, x5);
            x1 = Kt(x1, x6);
            x2 = Kt(x2, x7);
        }

        return Array(sA, x0, x1, x2);
    };

    function KC(sN) {
        var so = "0123456789abcdef";
        var sA = '';

        for (var x0 = 0; x0 < sN["length"] * 4; x0++) {
            sA += so["charAt"](sN[x0 >> 2] >> x0 % 4 * 8 + 4 & 15) + so["charAt"](sN[x0 >> 2] >> x0 % 4 * 8 & 15);
        }

        return sA;
    };

    function KE(sN) {
        var so = Array();
        var sA = (1 << Ki) - 1;

        for (var x0 = 0; x0 < sN["length"] * Ki; x0 += Ki) {
            so[x0 >> 5] |= (sN["charCodeAt"](x0 / Ki) & sA) << x0 % 32;
        }

        return so;
    };

    function Kv(sN) {
        return KC(KR(KE(sN), sN["length"] * Ki));
    }

    var xf = function xv() {
        var xR = Math["max"](document["documentElement"]["clientWidth"], window["innerWidth"] || 0);
        var xe = Math["max"](document["documentElement"]["clientHeight"], window["innerHeight"] || 0);
        return [xR, xe];
    };

    var xc = function xR() {
        var xe = [screen["width"], screen["height"]];
        var xy = [screen["availWidth"], screen["availHeight"]];
        var xk = screen["colorDepth"];
        var xa = screen["pixelDepth"];
        return [xe, xy, xk, xa];
    };

    var xb = function xk() {
        var xa = document["referrer"];
        var xM = window["location"]["href"];
        return [xM, xa];
    };

    var xs = function xM() {
        var xt = window["navigator"];
        var xH = [];

        try {
            var xE = xt["plugins"];
            var xC = void 0;

            for (xC in xE) {
                if (xE["hasOwnProperty"](xC)) {
                    var xr = xE[xC]["name"] || '';
                    xH["push"](xr);
                }
            }
        } catch (xZ) {
            window["Yoda"]["CAT"]["sendLog"](window["location"]["href"], "jsError", "fp_" + xZ["message"], xZ["stack"], "info");
        }

        return xH;
    };

    var xI = function xa(xM) {
        try {
            var xt = JSON["stringify"](xM);
            return btoa(encodeURIComponent(xt));
        } catch (xH) {
            return window["Yoda"]["CAT"]["sendLog"](window["location"]["href"], "jsError", "fp_" + xH["message"], xH["stack"], "info"),
                '';
        }
    };

    function bE(xv, xR, xe) {
        var xy = bj(xv, xR);
        return be(xy, xe);
    };

    var bi = function xI(xs, xx) {
        try {
            var xi = config['f'];
            return undefined && (xi = btoa(config["uniqueId"])),
            xi + '#' + bj(xs, xi);
        } catch (xR) {
            var xv = xR;
            return bk(xv["message"], xv["stack"] || ''),
            btoa(config['f']) + '#' + bj(xs, btoa(config['f']));
        }
    };

    function xt(xr, xZ) {
        var xu = decodeURIComponent(atob(xZ));
        return bE(xu, config["request_code"], xr);
    };

    function bH(xv, xR, xe) {
        var xy = bj(JSON["stringify"](xv), bt(xR));
        return (typeof xe !== "boolean" || xe) && (xy = bv(xy)), be(xy, xe);
    }

    var be = function xi(xv, xR) {
        if (typeof xR !== "boolean" || xR) {
            return xv;
        }

        var xe = 0;
        var xy;

        try {
            var xk = atob(config["session"]);
            var xa = new Function(xk)();
            xe = xa[0];
            xy = xa[1];
        } catch (xH) {
            var xM = xH;
            return bk(xM["message"], xM["stack"] || ''),
                bv(xv);
        }

        var xt = '';

        switch (xe) {
            case 0:
                xt = bR(xv, xy);
                break;

            case 1:
                xt = bx(xv, xy);
                break;

            case 2:
                xt = bx(xv, xy);
                break;

            case 3:
                xt = bi(xv);
                break;
        }

        return xt;
    };
    ////////////////////////////////////////
    var YH = function xj() {
        var xf = function xv() {
            var xR = Math["max"](document["documentElement"]["clientWidth"], window["innerWidth"] || 0);
            var xe = Math["max"](document["documentElement"]["clientHeight"], window["innerHeight"] || 0);
            return [xR, xe];
        };

        var xc = function xR() {
            var xe = [screen["width"], screen["height"]];
            var xy = [screen["availWidth"], screen["availHeight"]];
            var xk = screen["colorDepth"];
            var xa = screen["pixelDepth"];
            return [xe, xy, xk, xa];
        };

        var xK = function xe() {
            try {
                var xy = Function("return this")();

                var xk = function xt() {
                    var xH = (xy["constructor"] + '')["match"](/ (\w+)|$/);

                    if (xH !== null) {
                        var xE = xH[1];

                        if (!xE) {
                            try {
                                xy === "[object]" && (xE = "Window");
                            } catch (xC) {
                                xE = "WSH";
                            }
                        }

                        return xE;
                    }

                    return '';
                };

                var xa = xk();
                var xM = '';

                switch (xa) {
                    case "Window":
                        break;

                    case "DedicatedWorkerGlobalScope":
                        xM = 'ww';
                        break;

                    case "WSH":
                        xM = "wsh";
                        break;

                    case "Object":
                        xM = 'nj';
                        break;

                    default:
                        xM = 'ot';
                }

                return xM;
            } catch (xH) {
                return "abnormal";
            }
        };

        var xY = function xy() {
            try {
                if (window["_phantom"] || window["phantom"] || window["callPhantom"]) {
                    return 'ps';
                }

                return xK() || Kp["getwd"]();
            } catch (xk) {
                return window["Yoda"]["CAT"]["sendLog"](window["location"]["href"], "jsError", "fp_" + xk["message"], xk["stack"], "info"), '';
            }
        };

        var xb = function xk() {
            var xa = document["referrer"];
            var xM = window["location"]["href"];
            return [xM, xa];
        };

        var xI = function xa(xM) {
            try {
                var xt = JSON["stringify"](xM);
                return window["btoa"](encodeURIComponent(xt));
            } catch (xH) {
                return window["Yoda"]["CAT"]["sendLog"](window["location"]["href"], "jsError", "fp_" + xH["message"], xH["stack"], "info"), '';
            }
        };

        var xs = function xM() {
            var xt = window["navigator"];
            var xH = [];

            try {
                var xE = xt["plugins"];
                var xC = void 0;

                for (xC in xE) {
                    if (xE["hasOwnProperty"](xC)) {
                        var xr = xE[xC]["name"] || '';
                        xH["push"](xr);
                    }
                }
            } catch (xZ) {
                window["Yoda"]["CAT"]["sendLog"](window["location"]["href"], "jsError", "fp_" + xZ["message"], xZ["stack"], "info");
            }

            return xH;
        };

        var xx = {
            'v': "2.2.2",
            'ts': new Date()["getTime"](),
            'cts': new Date()["getTime"](),
            'brVD': xf(),
            'brR': xc(),
            'bI': xb(),
            'aM': xY() || '',
            'broP': xs(),
            'cV': Kv(YR["getCanvasFp"]()),
            'wV': '',
            'wR': '',
            'wVU': '',
            'wRU': '',
            'aF': '',
            'wI': Yt["hash"],
            'wC': JSON["stringify"](Yt["report"])
        };
        YR["getWebglVendor"]()["then"](function (xt) {
            xx['wV'] = xt;
        });
        YR["getWebglRenderer"]()["then"](function (xt) {
            xx['wR'] = xt;
        });
        YR["getWebglVendorUnmasked"]()["then"](function (xt) {
            xx["wVU"] = xt;
        });
        YR["getWebglRendererUnmasked"]()["then"](function (xt) {
            xx["wRU"] = xt;
        });
        !!window["OscillatorNode"] && !!window["Float32Array"] && YM["start"]();
        setTimeout(function () {
            YR["getFonts"](xx);
        }, 0);
        !xx['aM'] && (Kp["listenwd"](function (xt) {
            xt && xt["length"] > 0 && (xx['aM'] = xt);
        }), !xx['aM'] && (xx['aM'] = ''));

        xx["reload"] = function () {
            xx["cts"] = Date["now"]();
            xx['aG'] = Kp["getWdLength"]()["toString"]() || 0;
            var xt = YM["getData"]();
            xt ? xx['aF'] = Kv(xt) : xx['aF'] = xt;
            xx['wA'] = Kp["getStringHashMD5"]();
            var xH = Object["assign"](xx, Yy);
            return xI(xH);
        };

        var xi = {};
        return xi["reload"] = xx["reload"], xi;
    };

    function YE(xf, xc, xK) {
        var xY = window["KNB"];
        var xb = window["YODA_Bridge"];
        var xI = xb && typeof xb["version"] === "number" && xb["version"] === 1;

        if (xY && xY["env"] && xY["env"]["isNative"] && xY["env"]["isTitans"]) {
            var xs = {};
            xs["contentType"] = "application/x-www-form-urlencoded";
            xs["contentEncoding"] = "gzip";
            xY["addRequestSignature"]({
                'method': "POST",
                'url': xf,
                'body': xc,
                'header': xs,
                'success': function xk(xa) {
                    if (typeof xa["mtgsig"] === "string") {
                        var xM = JSON["parse"](xa["mtgsig"])["mtgsig"];
                        xK(xM);
                    } else {
                        if (K4(xa["mtgsig"]) === "object") {
                            var xM = xa["mtgsig"]["mtgsig"];
                            xK(xM);
                        } else {
                            xK('');
                            window["Yoda"]["CAT"]["sendLog"](window["location"]["href"], "jsError", "nativeSign sign v3 fail", xa["url"], "info");
                        }
                    }
                },
                'fail': function xa(xM) {
                    window["Yoda"]["CAT"]["sendLog"](window["location"]["href"], "jsError", "nativeSign sign fail", JSON["stringify"](xM), "info");
                    xK('');
                }
            });
        } else {
            if (xI) {
                var xx = {};
                xx["contentType"] = "application/x-www-form-urlencoded";
                xx["contentEncoding"] = "gzip";
                xx["userAgent"] = navigator["userAgent"];
                var xi = {};
                xi["method"] = "POST";
                xi["url"] = xf;
                xi["body"] = xc;
                xi["header"] = xx;
                var xv = {};
                xv["action"] = "addRequestSignature";
                xv["data"] = xi;
                var xR = xv;
                var xe = JSON["stringify"](xR);
                var xy = window["prompt"](xe, xe) || '';
                xK(xy);
            } else {
                xK('');
            }
        }
    }

    function YC(xf) {
        return parseInt(xf, 10) === xf;
    }

    function Yr(xf) {
        if (!YC(xf["length"])) {
            return ![];
        }

        var xc;

        for (xc = 0; xc < xf["length"]; xc++) {
            if (!YC(xf[xc]) || xf[xc] < 0 || xf[xc] > 255) {
                return ![];
            }
        }

        return !![];
    }

    function YZ(xf, xc) {
        if (xf["buffer"] && xf["name"] === "Uint8Array") {
            return xc && (xf["slice"] ? xf = xf["slice"]() : xf = Array["prototype"]["slice"]["call"](xf)), xf;
        }

        if (Array["isArray"](xf)) {
            if (!Yr(xf)) {
                throw new Error("Array contains invalid value: " + xf);
            }

            return new Uint8Array(xf);
        }

        if (YC(xf["length"]) && Yr(xf)) {
            return new Uint8Array(xf);
        }

        throw new Error("unsupported array-like object");
    }

    function Yu(xf) {
        return new Uint8Array(xf);
    }

    function Yn(xf, xc, xK, xY, xb) {
        (xY != null || xb != null) && (xf["slice"] ? xf = xf["slice"](xY, xb) : xf = Array["prototype"]["slice"]["call"](xf, xY, xb));
        xc["set"](xf, xK);
    }

    var YS = function () {
        function xf(xY) {
            var xb = [];
            var xI = 0;
            xY = encodeURI(xY);

            while (xI < xY["length"]) {
                var xs = xY["charCodeAt"](xI++);
                xs === 37 ? (xb["push"](parseInt(xY["substr"](xI, 2), 16)), xI += 2) : xb["push"](xs);
            }

            return YZ(xb);
        }

        function xc(xY) {
            var xb = [];
            var xI = 0;

            while (xI < xY["length"]) {
                var xs = xY[xI];

                if (xs < 128) {
                    xb["push"](String["fromCharCode"](xs));
                    xI++;
                } else {
                    xs > 191 && xs < 224 ? (xb["push"](String["fromCharCode"]((xs & 31) << 6 | xY[xI + 1] & 63)), xI += 2) : (xb["push"](String["fromCharCode"]((xs & 15) << 12 | (xY[xI + 1] & 63) << 6 | xY[xI + 2] & 63)), xI += 3);
                }
            }

            return xb["join"]('');
        }

        var xK = {};
        return xK["toBytes"] = xf, xK["fromBytes"] = xc, xK;
    }();

    var Yl = function () {
        function xf(xb) {
            var xI = [];

            for (var xs = 0; xs < xb["length"]; xs += 2) {
                xI["push"](parseInt(xb["substr"](xs, 2), 16));
            }

            return xI;
        }

        var xc = "0123456789abcdef";

        function xK(xb) {
            var xI = [];

            for (var xs = 0; xs < xb["length"]; xs++) {
                var xx = xb[xs];
                xI["push"](xc[(xx & 240) >> 4] + xc[xx & 15]);
            }

            return xI["join"]('');
        }

        var xY = {};
        return xY["toBytes"] = xf, xY["fromBytes"] = xK, xY;
    }();

    var Yh = {};
    Yh['16'] = 10;
    Yh['24'] = 12;
    Yh['32'] = 14;
    var YV = Yh;
    var YQ = [1, 2, 4, 8, 16, 32, 64, 128, 27, 54, 108, 216, 171, 77, 154, 47, 94, 188, 99, 198, 151, 53, 106, 212, 179, 125, 250, 239, 197, 145];
    var YL = [99, 124, 119, 123, 242, 107, 111, 197, 48, 1, 103, 43, 254, 215, 171, 118, 202, 130, 201, 125, 250, 89, 71, 240, 173, 212, 162, 175, 156, 164, 114, 192, 183, 253, 147, 38, 54, 63, 247, 204, 52, 165, 229, 241, 113, 216, 49, 21, 4, 199, 35, 195, 24, 150, 5, 154, 7, 18, 128, 226, 235, 39, 178, 117, 9, 131, 44, 26, 27, 110, 90, 160, 82, 59, 214, 179, 41, 227, 47, 132, 83, 209, 0, 237, 32, 252, 177, 91, 106, 203, 190, 57, 74, 76, 88, 207, 208, 239, 170, 251, 67, 77, 51, 133, 69, 249, 2, 127, 80, 60, 159, 168, 81, 163, 64, 143, 146, 157, 56, 245, 188, 182, 218, 33, 16, 255, 243, 210, 205, 12, 19, 236, 95, 151, 68, 23, 196, 167, 126, 61, 100, 93, 25, 115, 96, 129, 79, 220, 34, 42, 144, 136, 70, 238, 184, 20, 222, 94, 11, 219, 224, 50, 58, 10, 73, 6, 36, 92, 194, 211, 172, 98, 145, 149, 228, 121, 231, 200, 55, 109, 141, 213, 78, 169, 108, 86, 244, 234, 101, 122, 174, 8, 186, 120, 37, 46, 28, 166, 180, 198, 232, 221, 116, 31, 75, 189, 139, 138, 112, 62, 181, 102, 72, 3, 246, 14, 97, 53, 87, 185, 134, 193, 29, 158, 225, 248, 152, 17, 105, 217, 142, 148, 155, 30, 135, 233, 206, 85, 40, 223, 140, 161, 137, 13, 191, 230, 66, 104, 65, 153, 45, 15, 176, 84, 187, 22];
    var YB = [82, 9, 106, 213, 48, 54, 165, 56, 191, 64, 163, 158, 129, 243, 215, 251, 124, 227, 57, 130, 155, 47, 255, 135, 52, 142, 67, 68, 196, 222, 233, 203, 84, 123, 148, 50, 166, 194, 35, 61, 238, 76, 149, 11, 66, 250, 195, 78, 8, 46, 161, 102, 40, 217, 36, 178, 118, 91, 162, 73, 109, 139, 209, 37, 114, 248, 246, 100, 134, 104, 152, 22, 212, 164, 92, 204, 93, 101, 182, 146, 108, 112, 72, 80, 253, 237, 185, 218, 94, 21, 70, 87, 167, 141, 157, 132, 144, 216, 171, 0, 140, 188, 211, 10, 247, 228, 88, 5, 184, 179, 69, 6, 208, 44, 30, 143, 202, 63, 15, 2, 193, 175, 189, 3, 1, 19, 138, 107, 58, 145, 17, 65, 79, 103, 220, 234, 151, 242, 207, 206, 240, 180, 230, 115, 150, 172, 116, 34, 231, 173, 53, 133, 226, 249, 55, 232, 28, 117, 223, 110, 71, 241, 26, 113, 29, 41, 197, 137, 111, 183, 98, 14, 170, 24, 190, 27, 252, 86, 62, 75, 198, 210, 121, 32, 154, 219, 192, 254, 120, 205, 90, 244, 31, 221, 168, 51, 136, 7, 199, 49, 177, 18, 16, 89, 39, 128, 236, 95, 96, 81, 127, 169, 25, 181, 74, 13, 45, 229, 122, 159, 147, 201, 156, 239, 160, 224, 59, 77, 174, 42, 245, 176, 200, 235, 187, 60, 131, 83, 153, 97, 23, 43, 4, 126, 186, 119, 214, 38, 225, 105, 20, 99, 85, 33, 12, 125];
    var YW = [3328402341, 4168907908, 4000806809, 4135287693, 4294111757, 3597364157, 3731845041, 2445657428, 1613770832, 33620227, 3462883241, 1445669757, 3892248089, 3050821474, 1303096294, 3967186586, 2412431941, 528646813, 2311702848, 4202528135, 4026202645, 2992200171, 2387036105, 4226871307, 1101901292, 3017069671, 1604494077, 1169141738, 597466303, 1403299063, 3832705686, 2613100635, 1974974402, 3791519004, 1033081774, 1277568618, 1815492186, 2118074177, 4126668546, 2211236943, 1748251740, 1369810420, 3521504564, 4193382664, 3799085459, 2883115123, 1647391059, 706024767, 134480908, 2512897874, 1176707941, 2646852446, 806885416, 932615841, 168101135, 798661301, 235341577, 605164086, 461406363, 3756188221, 3454790438, 1311188841, 2142417613, 3933566367, 302582043, 495158174, 1479289972, 874125870, 907746093, 3698224818, 3025820398, 1537253627, 2756858614, 1983593293, 3084310113, 2108928974, 1378429307, 3722699582, 1580150641, 327451799, 2790478837, 3117535592, 0, 3253595436, 1075847264, 3825007647, 2041688520, 3059440621, 3563743934, 2378943302, 1740553945, 1916352843, 2487896798, 2555137236, 2958579944, 2244988746, 3151024235, 3320835882, 1336584933, 3992714006, 2252555205, 2588757463, 1714631509, 293963156, 2319795663, 3925473552, 67240454, 4269768577, 2689618160, 2017213508, 631218106, 1269344483, 2723238387, 1571005438, 2151694528, 93294474, 1066570413, 563977660, 1882732616, 4059428100, 1673313503, 2008463041, 2950355573, 1109467491, 537923632, 3858759450, 4260623118, 3218264685, 2177748300, 403442708, 638784309, 3287084079, 3193921505, 899127202, 2286175436, 773265209, 2479146071, 1437050866, 4236148354, 2050833735, 3362022572, 3126681063, 840505643, 3866325909, 3227541664, 427917720, 2655997905, 2749160575, 1143087718, 1412049534, 999329963, 193497219, 2353415882, 3354324521, 1807268051, 672404540, 2816401017, 3160301282, 369822493, 2916866934, 3688947771, 1681011286, 1949973070, 336202270, 2454276571, 201721354, 1210328172, 3093060836, 2680341085, 3184776046, 1135389935, 3294782118, 965841320, 831886756, 3554993207, 4068047243, 3588745010, 2345191491, 1849112409, 3664604599, 26054028, 2983581028, 2622377682, 1235855840, 3630984372, 2891339514, 4092916743, 3488279077, 3395642799, 4101667470, 1202630377, 268961816, 1874508501, 4034427016, 1243948399, 1546530418, 941366308, 1470539505, 1941222599, 2546386513, 3421038627, 2715671932, 3899946140, 1042226977, 2521517021, 1639824860, 227249030, 260737669, 3765465232, 2084453954, 1907733956, 3429263018, 2420656344, 100860677, 4160157185, 470683154, 3261161891, 1781871967, 2924959737, 1773779408, 394692241, 2579611992, 974986535, 664706745, 3655459128, 3958962195, 731420851, 571543859, 3530123707, 2849626480, 126783113, 865375399, 765172662, 1008606754, 361203602, 3387549984, 2278477385, 2857719295, 1344809080, 2782912378, 59542671, 1503764984, 160008576, 437062935, 1707065306, 3622233649, 2218934982, 3496503480, 2185314755, 697932208, 1512910199, 504303377, 2075177163, 2824099068, 1841019862, 739644986];
    var Yg = [2781242211, 2230877308, 2582542199, 2381740923, 234877682, 3184946027, 2984144751, 1418839493, 1348481072, 50462977, 2848876391, 2102799147, 434634494, 1656084439, 3863849899, 2599188086, 1167051466, 2636087938, 1082771913, 2281340285, 368048890, 3954334041, 3381544775, 201060592, 3963727277, 1739838676, 4250903202, 3930435503, 3206782108, 4149453988, 2531553906, 1536934080, 3262494647, 484572669, 2923271059, 1783375398, 1517041206, 1098792767, 49674231, 1334037708, 1550332980, 4098991525, 886171109, 150598129, 2481090929, 1940642008, 1398944049, 1059722517, 201851908, 1385547719, 1699095331, 1587397571, 674240536, 2704774806, 252314885, 3039795866, 151914247, 908333586, 2602270848, 1038082786, 651029483, 1766729511, 3447698098, 2682942837, 454166793, 2652734339, 1951935532, 775166490, 758520603, 3000790638, 4004797018, 4217086112, 4137964114, 1299594043, 1639438038, 3464344499, 2068982057, 1054729187, 1901997871, 2534638724, 4121318227, 1757008337, 0, 750906861, 1614815264, 535035132, 3363418545, 3988151131, 3201591914, 1183697867, 3647454910, 1265776953, 3734260298, 3566750796, 3903871064, 1250283471, 1807470800, 717615087, 3847203498, 384695291, 3313910595, 3617213773, 1432761139, 2484176261, 3481945413, 283769337, 100925954, 2180939647, 4037038160, 1148730428, 3123027871, 3813386408, 4087501137, 4267549603, 3229630528, 2315620239, 2906624658, 3156319645, 1215313976, 82966005, 3747855548, 3245848246, 1974459098, 1665278241, 807407632, 451280895, 251524083, 1841287890, 1283575245, 337120268, 891687699, 801369324, 3787349855, 2721421207, 3431482436, 959321879, 1469301956, 4065699751, 2197585534, 1199193405, 2898814052, 3887750493, 724703513, 2514908019, 2696962144, 2551808385, 3516813135, 2141445340, 1715741218, 2119445034, 2872807568, 2198571144, 3398190662, 700968686, 3547052216, 1009259540, 2041044702, 3803995742, 487983883, 1991105499, 1004265696, 1449407026, 1316239930, 504629770, 3683797321, 168560134, 1816667172, 3837287516, 1570751170, 1857934291, 4014189740, 2797888098, 2822345105, 2754712981, 936633572, 2347923833, 852879335, 1133234376, 1500395319, 3084545389, 2348912013, 1689376213, 3533459022, 3762923945, 3034082412, 4205598294, 133428468, 634383082, 2949277029, 2398386810, 3913789102, 403703816, 3580869306, 2297460856, 1867130149, 1918643758, 607656988, 4049053350, 3346248884, 1368901318, 600565992, 2090982877, 2632479860, 557719327, 3717614411, 3697393085, 2249034635, 2232388234, 2430627952, 1115438654, 3295786421, 2865522278, 3633334344, 84280067, 33027830, 303828494, 2747425121, 1600795957, 4188952407, 3496589753, 2434238086, 1486471617, 658119965, 3106381470, 953803233, 334231800, 3005978776, 857870609, 3151128937, 1890179545, 2298973838, 2805175444, 3056442267, 574365214, 2450884487, 550103529, 1233637070, 4289353045, 2018519080, 2057691103, 2399374476, 4166623649, 2148108681, 387583245, 3664101311, 836232934, 3330556482, 3100665960, 3280093505, 2955516313, 2002398509, 287182607, 3413881008, 4238890068, 3597515707, 975967766];
    var YJ = [1671808611, 2089089148, 2006576759, 2072901243, 4061003762, 1807603307, 1873927791, 3310653893, 810573872, 16974337, 1739181671, 729634347, 4263110654, 3613570519, 2883997099, 1989864566, 3393556426, 2191335298, 3376449993, 2106063485, 4195741690, 1508618841, 1204391495, 4027317232, 2917941677, 3563566036, 2734514082, 2951366063, 2629772188, 2767672228, 1922491506, 3227229120, 3082974647, 4246528509, 2477669779, 644500518, 911895606, 1061256767, 4144166391, 3427763148, 878471220, 2784252325, 3845444069, 4043897329, 1905517169, 3631459288, 827548209, 356461077, 67897348, 3344078279, 593839651, 3277757891, 405286936, 2527147926, 84871685, 2595565466, 118033927, 305538066, 2157648768, 3795705826, 3945188843, 661212711, 2999812018, 1973414517, 152769033, 2208177539, 745822252, 439235610, 455947803, 1857215598, 1525593178, 2700827552, 1391895634, 994932283, 3596728278, 3016654259, 695947817, 3812548067, 795958831, 2224493444, 1408607827, 3513301457, 0, 3979133421, 543178784, 4229948412, 2982705585, 1542305371, 1790891114, 3410398667, 3201918910, 961245753, 1256100938, 1289001036, 1491644504, 3477767631, 3496721360, 4012557807, 2867154858, 4212583931, 1137018435, 1305975373, 861234739, 2241073541, 1171229253, 4178635257, 33948674, 2139225727, 1357946960, 1011120188, 2679776671, 2833468328, 1374921297, 2751356323, 1086357568, 2408187279, 2460827538, 2646352285, 944271416, 4110742005, 3168756668, 3066132406, 3665145818, 560153121, 271589392, 4279952895, 4077846003, 3530407890, 3444343245, 202643468, 322250259, 3962553324, 1608629855, 2543990167, 1154254916, 389623319, 3294073796, 2817676711, 2122513534, 1028094525, 1689045092, 1575467613, 422261273, 1939203699, 1621147744, 2174228865, 1339137615, 3699352540, 577127458, 712922154, 2427141008, 2290289544, 1187679302, 3995715566, 3100863416, 339486740, 3732514782, 1591917662, 186455563, 3681988059, 3762019296, 844522546, 978220090, 169743370, 1239126601, 101321734, 611076132, 1558493276, 3260915650, 3547250131, 2901361580, 1655096418, 2443721105, 2510565781, 3828863972, 2039214713, 3878868455, 3359869896, 928607799, 1840765549, 2374762893, 3580146133, 1322425422, 2850048425, 1823791212, 1459268694, 4094161908, 3928346602, 1706019429, 2056189050, 2934523822, 135794696, 3134549946, 2022240376, 628050469, 779246638, 472135708, 2800834470, 3032970164, 3327236038, 3894660072, 3715932637, 1956440180, 522272287, 1272813131, 3185336765, 2340818315, 2323976074, 1888542832, 1044544574, 3049550261, 1722469478, 1222152264, 50660867, 4127324150, 236067854, 1638122081, 895445557, 1475980887, 3117443513, 2257655686, 3243809217, 489110045, 2662934430, 3778599393, 4162055160, 2561878936, 288563729, 1773916777, 3648039385, 2391345038, 2493985684, 2612407707, 505560094, 2274497927, 3911240169, 3460925390, 1442818645, 678973480, 3749357023, 2358182796, 2717407649, 2306869641, 219617805, 3218761151, 3862026214, 1120306242, 1756942440, 1103331905, 2578459033, 762796589, 252780047, 2966125488, 1425844308, 3151392187, 372911126];
    var YP = [1667474886, 2088535288, 2004326894, 2071694838, 4075949567, 1802223062, 1869591006, 3318043793, 808472672, 16843522, 1734846926, 724270422, 4278065639, 3621216949, 2880169549, 1987484396, 3402253711, 2189597983, 3385409673, 2105378810, 4210693615, 1499065266, 1195886990, 4042263547, 2913856577, 3570689971, 2728590687, 2947541573, 2627518243, 2762274643, 1920112356, 3233831835, 3082273397, 4261223649, 2475929149, 640051788, 909531756, 1061110142, 4160160501, 3435941763, 875846760, 2779116625, 3857003729, 4059105529, 1903268834, 3638064043, 825316194, 353713962, 67374088, 3351728789, 589522246, 3284360861, 404236336, 2526454071, 84217610, 2593830191, 117901582, 303183396, 2155911963, 3806477791, 3958056653, 656894286, 2998062463, 1970642922, 151591698, 2206440989, 741110872, 437923380, 454765878, 1852748508, 1515908788, 2694904667, 1381168804, 993742198, 3604373943, 3014905469, 690584402, 3823320797, 791638366, 2223281939, 1398011302, 3520161977, 0, 3991743681, 538992704, 4244381667, 2981218425, 1532751286, 1785380564, 3419096717, 3200178535, 960056178, 1246420628, 1280103576, 1482221744, 3486468741, 3503319995, 4025428677, 2863326543, 4227536621, 1128514950, 1296947098, 859002214, 2240123921, 1162203018, 4193849577, 33687044, 2139062782, 1347481760, 1010582648, 2678045221, 2829640523, 1364325282, 2745433693, 1077985408, 2408548869, 2459086143, 2644360225, 943212656, 4126475505, 3166494563, 3065430391, 3671750063, 555836226, 269496352, 4294908645, 4092792573, 3537006015, 3452783745, 202118168, 320025894, 3974901699, 1600119230, 2543297077, 1145359496, 387397934, 3301201811, 2812801621, 2122220284, 1027426170, 1684319432, 1566435258, 421079858, 1936954854, 1616945344, 2172753945, 1330631070, 3705438115, 572679748, 707427924, 2425400123, 2290647819, 1179044492, 4008585671, 3099120491, 336870440, 3739122087, 1583276732, 185277718, 3688593069, 3772791771, 842159716, 976899700, 168435220, 1229577106, 101059084, 606366792, 1549591736, 3267517855, 3553849021, 2897014595, 1650632388, 2442242105, 2509612081, 3840161747, 2038008818, 3890688725, 3368567691, 926374254, 1835907034, 2374863873, 3587531953, 1313788572, 2846482505, 1819063512, 1448540844, 4109633523, 3941213647, 1701162954, 2054852340, 2930698567, 134748176, 3132806511, 2021165296, 623210314, 774795868, 471606328, 2795958615, 3031746419, 3334885783, 3907527627, 3722280097, 1953799400, 522133822, 1263263126, 3183336545, 2341176845, 2324333839, 1886425312, 1044267644, 3048588401, 1718004428, 1212733584, 50529542, 4143317495, 235803164, 1633788866, 892690282, 1465383342, 3115962473, 2256965911, 3250673817, 488449850, 2661202215, 3789633753, 4177007595, 2560144171, 286339874, 1768537042, 3654906025, 2391705863, 2492770099, 2610673197, 505291324, 2273808917, 3924369609, 3469625735, 1431699370, 673740880, 3755965093, 2358021891, 2711746649, 2307489801, 218961690, 3217021541, 3873845719, 1111672452, 1751693520, 1094828930, 2576986153, 757954394, 252645662, 2964376443, 1414855848, 3149649517, 370555436];
    var Yq = [1374988112, 2118214995, 437757123, 975658646, 1001089995, 530400753, 2902087851, 1273168787, 540080725, 2910219766, 2295101073, 4110568485, 1340463100, 3307916247, 641025152, 3043140495, 3736164937, 632953703, 1172967064, 1576976609, 3274667266, 2169303058, 2370213795, 1809054150, 59727847, 361929877, 3211623147, 2505202138, 3569255213, 1484005843, 1239443753, 2395588676, 1975683434, 4102977912, 2572697195, 666464733, 3202437046, 4035489047, 3374361702, 2110667444, 1675577880, 3843699074, 2538681184, 1649639237, 2976151520, 3144396420, 4269907996, 4178062228, 1883793496, 2403728665, 2497604743, 1383856311, 2876494627, 1917518562, 3810496343, 1716890410, 3001755655, 800440835, 2261089178, 3543599269, 807962610, 599762354, 33778362, 3977675356, 2328828971, 2809771154, 4077384432, 1315562145, 1708848333, 101039829, 3509871135, 3299278474, 875451293, 2733856160, 92987698, 2767645557, 193195065, 1080094634, 1584504582, 3178106961, 1042385657, 2531067453, 3711829422, 1306967366, 2438237621, 1908694277, 67556463, 1615861247, 429456164, 3602770327, 2302690252, 1742315127, 2968011453, 126454664, 3877198648, 2043211483, 2709260871, 2084704233, 4169408201, 0, 159417987, 841739592, 504459436, 1817866830, 4245618683, 260388950, 1034867998, 908933415, 168810852, 1750902305, 2606453969, 607530554, 202008497, 2472011535, 3035535058, 463180190, 2160117071, 1641816226, 1517767529, 470948374, 3801332234, 3231722213, 1008918595, 303765277, 235474187, 4069246893, 766945465, 337553864, 1475418501, 2943682380, 4003061179, 2743034109, 4144047775, 1551037884, 1147550661, 1543208500, 2336434550, 3408119516, 3069049960, 3102011747, 3610369226, 1113818384, 328671808, 2227573024, 2236228733, 3535486456, 2935566865, 3341394285, 496906059, 3702665459, 226906860, 2009195472, 733156972, 2842737049, 294930682, 1206477858, 2835123396, 2700099354, 1451044056, 573804783, 2269728455, 3644379585, 2362090238, 2564033334, 2801107407, 2776292904, 3669462566, 1068351396, 742039012, 1350078989, 1784663195, 1417561698, 4136440770, 2430122216, 775550814, 2193862645, 2673705150, 1775276924, 1876241833, 3475313331, 3366754619, 270040487, 3902563182, 3678124923, 3441850377, 1851332852, 3969562369, 2203032232, 3868552805, 2868897406, 566021896, 4011190502, 3135740889, 1248802510, 3936291284, 699432150, 832877231, 708780849, 3332740144, 899835584, 1951317047, 4236429990, 3767586992, 866637845, 4043610186, 1106041591, 2144161806, 395441711, 1984812685, 1139781709, 3433712980, 3835036895, 2664543715, 1282050075, 3240894392, 1181045119, 2640243204, 25965917, 4203181171, 4211818798, 3009879386, 2463879762, 3910161971, 1842759443, 2597806476, 933301370, 1509430414, 3943906441, 3467192302, 3076639029, 3776767469, 2051518780, 2631065433, 1441952575, 404016761, 1942435775, 1408749034, 1610459739, 3745345300, 2017778566, 3400528769, 3110650942, 941896748, 3265478751, 371049330, 3168937228, 675039627, 4279080257, 967311729, 135050206, 3635733660, 1683407248, 2076935265, 3576870512, 1215061108, 3501741890];
    var YX = [1347548327, 1400783205, 3273267108, 2520393566, 3409685355, 4045380933, 2880240216, 2471224067, 1428173050, 4138563181, 2441661558, 636813900, 4233094615, 3620022987, 2149987652, 2411029155, 1239331162, 1730525723, 2554718734, 3781033664, 46346101, 310463728, 2743944855, 3328955385, 3875770207, 2501218972, 3955191162, 3667219033, 768917123, 3545789473, 692707433, 1150208456, 1786102409, 2029293177, 1805211710, 3710368113, 3065962831, 401639597, 1724457132, 3028143674, 409198410, 2196052529, 1620529459, 1164071807, 3769721975, 2226875310, 486441376, 2499348523, 1483753576, 428819965, 2274680428, 3075636216, 598438867, 3799141122, 1474502543, 711349675, 129166120, 53458370, 2592523643, 2782082824, 4063242375, 2988687269, 3120694122, 1559041666, 730517276, 2460449204, 4042459122, 2706270690, 3446004468, 3573941694, 533804130, 2328143614, 2637442643, 2695033685, 839224033, 1973745387, 957055980, 2856345839, 106852767, 1371368976, 4181598602, 1033297158, 2933734917, 1179510461, 3046200461, 91341917, 1862534868, 4284502037, 605657339, 2547432937, 3431546947, 2003294622, 3182487618, 2282195339, 954669403, 3682191598, 1201765386, 3917234703, 3388507166, 0, 2198438022, 1211247597, 2887651696, 1315723890, 4227665663, 1443857720, 507358933, 657861945, 1678381017, 560487590, 3516619604, 975451694, 2970356327, 261314535, 3535072918, 2652609425, 1333838021, 2724322336, 1767536459, 370938394, 182621114, 3854606378, 1128014560, 487725847, 185469197, 2918353863, 3106780840, 3356761769, 2237133081, 1286567175, 3152976349, 4255350624, 2683765030, 3160175349, 3309594171, 878443390, 1988838185, 3704300486, 1756818940, 1673061617, 3403100636, 272786309, 1075025698, 545572369, 2105887268, 4174560061, 296679730, 1841768865, 1260232239, 4091327024, 3960309330, 3497509347, 1814803222, 2578018489, 4195456072, 575138148, 3299409036, 446754879, 3629546796, 4011996048, 3347532110, 3252238545, 4270639778, 915985419, 3483825537, 681933534, 651868046, 2755636671, 3828103837, 223377554, 2607439820, 1649704518, 3270937875, 3901806776, 1580087799, 4118987695, 3198115200, 2087309459, 2842678573, 3016697106, 1003007129, 2802849917, 1860738147, 2077965243, 164439672, 4100872472, 32283319, 2827177882, 1709610350, 2125135846, 136428751, 3874428392, 3652904859, 3460984630, 3572145929, 3593056380, 2939266226, 824852259, 818324884, 3224740454, 930369212, 2801566410, 2967507152, 355706840, 1257309336, 4148292826, 243256656, 790073846, 2373340630, 1296297904, 1422699085, 3756299780, 3818836405, 457992840, 3099667487, 2135319889, 77422314, 1560382517, 1945798516, 788204353, 1521706781, 1385356242, 870912086, 325965383, 2358957921, 2050466060, 2388260884, 2313884476, 4006521127, 901210569, 3990953189, 1014646705, 1503449823, 1062597235, 2031621326, 3212035895, 3931371469, 1533017514, 350174575, 2256028891, 2177544179, 1052338372, 741876788, 1606591296, 1914052035, 213705253, 2334669897, 1107234197, 1899603969, 3725069491, 2631447780, 2422494913, 1635502980, 1893020342, 1950903388, 1120974935];
    var YU = [2807058932, 1699970625, 2764249623, 1586903591, 1808481195, 1173430173, 1487645946, 59984867, 4199882800, 1844882806, 1989249228, 1277555970, 3623636965, 3419915562, 1149249077, 2744104290, 1514790577, 459744698, 244860394, 3235995134, 1963115311, 4027744588, 2544078150, 4190530515, 1608975247, 2627016082, 2062270317, 1507497298, 2200818878, 567498868, 1764313568, 3359936201, 2305455554, 2037970062, 1047239000, 1910319033, 1337376481, 2904027272, 2892417312, 984907214, 1243112415, 830661914, 861968209, 2135253587, 2011214180, 2927934315, 2686254721, 731183368, 1750626376, 4246310725, 1820824798, 4172763771, 3542330227, 48394827, 2404901663, 2871682645, 671593195, 3254988725, 2073724613, 145085239, 2280796200, 2779915199, 1790575107, 2187128086, 472615631, 3029510009, 4075877127, 3802222185, 4107101658, 3201631749, 1646252340, 4270507174, 1402811438, 1436590835, 3778151818, 3950355702, 3963161475, 4020912224, 2667994737, 273792366, 2331590177, 104699613, 95345982, 3175501286, 2377486676, 1560637892, 3564045318, 369057872, 4213447064, 3919042237, 1137477952, 2658625497, 1119727848, 2340947849, 1530455833, 4007360968, 172466556, 266959938, 516552836, 0, 2256734592, 3980931627, 1890328081, 1917742170, 4294704398, 945164165, 3575528878, 958871085, 3647212047, 2787207260, 1423022939, 775562294, 1739656202, 3876557655, 2530391278, 2443058075, 3310321856, 547512796, 1265195639, 437656594, 3121275539, 719700128, 3762502690, 387781147, 218828297, 3350065803, 2830708150, 2848461854, 428169201, 122466165, 3720081049, 1627235199, 648017665, 4122762354, 1002783846, 2117360635, 695634755, 3336358691, 4234721005, 4049844452, 3704280881, 2232435299, 574624663, 287343814, 612205898, 1039717051, 840019705, 2708326185, 793451934, 821288114, 1391201670, 3822090177, 376187827, 3113855344, 1224348052, 1679968233, 2361698556, 1058709744, 752375421, 2431590963, 1321699145, 3519142200, 2734591178, 188127444, 2177869557, 3727205754, 2384911031, 3215212461, 2648976442, 2450346104, 3432737375, 1180849278, 331544205, 3102249176, 4150144569, 2952102595, 2159976285, 2474404304, 766078933, 313773861, 2570832044, 2108100632, 1668212892, 3145456443, 2013908262, 418672217, 3070356634, 2594734927, 1852171925, 3867060991, 3473416636, 3907448597, 2614737639, 919489135, 164948639, 2094410160, 2997825956, 590424639, 2486224549, 1723872674, 3157750862, 3399941250, 3501252752, 3625268135, 2555048196, 3673637356, 1343127501, 4130281361, 3599595085, 2957853679, 1297403050, 81781910, 3051593425, 2283490410, 532201772, 1367295589, 3926170974, 895287692, 1953757831, 1093597963, 492483431, 3528626907, 1446242576, 1192455638, 1636604631, 209336225, 344873464, 1015671571, 669961897, 3375740769, 3857572124, 2973530695, 3747192018, 1933530610, 3464042516, 935293895, 3454686199, 2858115069, 1863638845, 3683022916, 4085369519, 3292445032, 875313188, 1080017571, 3279033885, 621591778, 1233856572, 2504130317, 24197544, 3017672716, 3835484340, 3247465558, 2220981195, 3060847922, 1551124588, 1463996600];
    var Yz = [4104605777, 1097159550, 396673818, 660510266, 2875968315, 2638606623, 4200115116, 3808662347, 821712160, 1986918061, 3430322568, 38544885, 3856137295, 718002117, 893681702, 1654886325, 2975484382, 3122358053, 3926825029, 4274053469, 796197571, 1290801793, 1184342925, 3556361835, 2405426947, 2459735317, 1836772287, 1381620373, 3196267988, 1948373848, 3764988233, 3385345166, 3263785589, 2390325492, 1480485785, 3111247143, 3780097726, 2293045232, 548169417, 3459953789, 3746175075, 439452389, 1362321559, 1400849762, 1685577905, 1806599355, 2174754046, 137073913, 1214797936, 1174215055, 3731654548, 2079897426, 1943217067, 1258480242, 529487843, 1437280870, 3945269170, 3049390895, 3313212038, 923313619, 679998000, 3215307299, 57326082, 377642221, 3474729866, 2041877159, 133361907, 1776460110, 3673476453, 96392454, 878845905, 2801699524, 777231668, 4082475170, 2330014213, 4142626212, 2213296395, 1626319424, 1906247262, 1846563261, 562755902, 3708173718, 1040559837, 3871163981, 1418573201, 3294430577, 114585348, 1343618912, 2566595609, 3186202582, 1078185097, 3651041127, 3896688048, 2307622919, 425408743, 3371096953, 2081048481, 1108339068, 2216610296, 0, 2156299017, 736970802, 292596766, 1517440620, 251657213, 2235061775, 2933202493, 758720310, 265905162, 1554391400, 1532285339, 908999204, 174567692, 1474760595, 4002861748, 2610011675, 3234156416, 3693126241, 2001430874, 303699484, 2478443234, 2687165888, 585122620, 454499602, 151849742, 2345119218, 3064510765, 514443284, 4044981591, 1963412655, 2581445614, 2137062819, 19308535, 1928707164, 1715193156, 4219352155, 1126790795, 600235211, 3992742070, 3841024952, 836553431, 1669664834, 2535604243, 3323011204, 1243905413, 3141400786, 4180808110, 698445255, 2653899549, 2989552604, 2253581325, 3252932727, 3004591147, 1891211689, 2487810577, 3915653703, 4237083816, 4030667424, 2100090966, 865136418, 1229899655, 953270745, 3399679628, 3557504664, 4118925222, 2061379749, 3079546586, 2915017791, 983426092, 2022837584, 1607244650, 2118541908, 2366882550, 3635996816, 972512814, 3283088770, 1568718495, 3499326569, 3576539503, 621982671, 2895723464, 410887952, 2623762152, 1002142683, 645401037, 1494807662, 2595684844, 1335535747, 2507040230, 4293295786, 3167684641, 367585007, 3885750714, 1865862730, 2668221674, 2960971305, 2763173681, 1059270954, 2777952454, 2724642869, 1320957812, 2194319100, 2429595872, 2815956275, 77089521, 3973773121, 3444575871, 2448830231, 1305906550, 4021308739, 2857194700, 2516901860, 3518358430, 1787304780, 740276417, 1699839814, 1592394909, 2352307457, 2272556026, 188821243, 1729977011, 3687994002, 274084841, 3594982253, 3613494426, 2701949495, 4162096729, 322734571, 2837966542, 1640576439, 484830689, 1202797690, 3537852828, 4067639125, 349075736, 3342319475, 4157467219, 4255800159, 1030690015, 1155237496, 2951971274, 1757691577, 607398968, 2738905026, 499347990, 3794078908, 1011452712, 227885567, 2818666809, 213114376, 3034881240, 1455525988, 3414450555, 850817237, 1817998408, 3092726480];
    var Yd = [0, 235474187, 470948374, 303765277, 941896748, 908933415, 607530554, 708780849, 1883793496, 2118214995, 1817866830, 1649639237, 1215061108, 1181045119, 1417561698, 1517767529, 3767586992, 4003061179, 4236429990, 4069246893, 3635733660, 3602770327, 3299278474, 3400528769, 2430122216, 2664543715, 2362090238, 2193862645, 2835123396, 2801107407, 3035535058, 3135740889, 3678124923, 3576870512, 3341394285, 3374361702, 3810496343, 3977675356, 4279080257, 4043610186, 2876494627, 2776292904, 3076639029, 3110650942, 2472011535, 2640243204, 2403728665, 2169303058, 1001089995, 899835584, 666464733, 699432150, 59727847, 226906860, 530400753, 294930682, 1273168787, 1172967064, 1475418501, 1509430414, 1942435775, 2110667444, 1876241833, 1641816226, 2910219766, 2743034109, 2976151520, 3211623147, 2505202138, 2606453969, 2302690252, 2269728455, 3711829422, 3543599269, 3240894392, 3475313331, 3843699074, 3943906441, 4178062228, 4144047775, 1306967366, 1139781709, 1374988112, 1610459739, 1975683434, 2076935265, 1775276924, 1742315127, 1034867998, 866637845, 566021896, 800440835, 92987698, 193195065, 429456164, 395441711, 1984812685, 2017778566, 1784663195, 1683407248, 1315562145, 1080094634, 1383856311, 1551037884, 101039829, 135050206, 437757123, 337553864, 1042385657, 807962610, 573804783, 742039012, 2531067453, 2564033334, 2328828971, 2227573024, 2935566865, 2700099354, 3001755655, 3168937228, 3868552805, 3902563182, 4203181171, 4102977912, 3736164937, 3501741890, 3265478751, 3433712980, 1106041591, 1340463100, 1576976609, 1408749034, 2043211483, 2009195472, 1708848333, 1809054150, 832877231, 1068351396, 766945465, 599762354, 159417987, 126454664, 361929877, 463180190, 2709260871, 2943682380, 3178106961, 3009879386, 2572697195, 2538681184, 2236228733, 2336434550, 3509871135, 3745345300, 3441850377, 3274667266, 3910161971, 3877198648, 4110568485, 4211818798, 2597806476, 2497604743, 2261089178, 2295101073, 2733856160, 2902087851, 3202437046, 2968011453, 3936291284, 3835036895, 4136440770, 4169408201, 3535486456, 3702665459, 3467192302, 3231722213, 2051518780, 1951317047, 1716890410, 1750902305, 1113818384, 1282050075, 1584504582, 1350078989, 168810852, 67556463, 371049330, 404016761, 841739592, 1008918595, 775550814, 540080725, 3969562369, 3801332234, 4035489047, 4269907996, 3569255213, 3669462566, 3366754619, 3332740144, 2631065433, 2463879762, 2160117071, 2395588676, 2767645557, 2868897406, 3102011747, 3069049960, 202008497, 33778362, 270040487, 504459436, 875451293, 975658646, 675039627, 641025152, 2084704233, 1917518562, 1615861247, 1851332852, 1147550661, 1248802510, 1484005843, 1451044056, 933301370, 967311729, 733156972, 632953703, 260388950, 25965917, 328671808, 496906059, 1206477858, 1239443753, 1543208500, 1441952575, 2144161806, 1908694277, 1675577880, 1842759443, 3610369226, 3644379585, 3408119516, 3307916247, 4011190502, 3776767469, 4077384432, 4245618683, 2809771154, 2842737049, 3144396420, 3043140495, 2673705150, 2438237621, 2203032232, 2370213795];
    var YD = [0, 185469197, 370938394, 487725847, 741876788, 657861945, 975451694, 824852259, 1483753576, 1400783205, 1315723890, 1164071807, 1950903388, 2135319889, 1649704518, 1767536459, 2967507152, 3152976349, 2801566410, 2918353863, 2631447780, 2547432937, 2328143614, 2177544179, 3901806776, 3818836405, 4270639778, 4118987695, 3299409036, 3483825537, 3535072918, 3652904859, 2077965243, 1893020342, 1841768865, 1724457132, 1474502543, 1559041666, 1107234197, 1257309336, 598438867, 681933534, 901210569, 1052338372, 261314535, 77422314, 428819965, 310463728, 3409685355, 3224740454, 3710368113, 3593056380, 3875770207, 3960309330, 4045380933, 4195456072, 2471224067, 2554718734, 2237133081, 2388260884, 3212035895, 3028143674, 2842678573, 2724322336, 4138563181, 4255350624, 3769721975, 3955191162, 3667219033, 3516619604, 3431546947, 3347532110, 2933734917, 2782082824, 3099667487, 3016697106, 2196052529, 2313884476, 2499348523, 2683765030, 1179510461, 1296297904, 1347548327, 1533017514, 1786102409, 1635502980, 2087309459, 2003294622, 507358933, 355706840, 136428751, 53458370, 839224033, 957055980, 605657339, 790073846, 2373340630, 2256028891, 2607439820, 2422494913, 2706270690, 2856345839, 3075636216, 3160175349, 3573941694, 3725069491, 3273267108, 3356761769, 4181598602, 4063242375, 4011996048, 3828103837, 1033297158, 915985419, 730517276, 545572369, 296679730, 446754879, 129166120, 213705253, 1709610350, 1860738147, 1945798516, 2029293177, 1239331162, 1120974935, 1606591296, 1422699085, 4148292826, 4233094615, 3781033664, 3931371469, 3682191598, 3497509347, 3446004468, 3328955385, 2939266226, 2755636671, 3106780840, 2988687269, 2198438022, 2282195339, 2501218972, 2652609425, 1201765386, 1286567175, 1371368976, 1521706781, 1805211710, 1620529459, 2105887268, 1988838185, 533804130, 350174575, 164439672, 46346101, 870912086, 954669403, 636813900, 788204353, 2358957921, 2274680428, 2592523643, 2441661558, 2695033685, 2880240216, 3065962831, 3182487618, 3572145929, 3756299780, 3270937875, 3388507166, 4174560061, 4091327024, 4006521127, 3854606378, 1014646705, 930369212, 711349675, 560487590, 272786309, 457992840, 106852767, 223377554, 1678381017, 1862534868, 1914052035, 2031621326, 1211247597, 1128014560, 1580087799, 1428173050, 32283319, 182621114, 401639597, 486441376, 768917123, 651868046, 1003007129, 818324884, 1503449823, 1385356242, 1333838021, 1150208456, 1973745387, 2125135846, 1673061617, 1756818940, 2970356327, 3120694122, 2802849917, 2887651696, 2637442643, 2520393566, 2334669897, 2149987652, 3917234703, 3799141122, 4284502037, 4100872472, 3309594171, 3460984630, 3545789473, 3629546796, 2050466060, 1899603969, 1814803222, 1730525723, 1443857720, 1560382517, 1075025698, 1260232239, 575138148, 692707433, 878443390, 1062597235, 243256656, 91341917, 409198410, 325965383, 3403100636, 3252238545, 3704300486, 3620022987, 3874428392, 3990953189, 4042459122, 4227665663, 2460449204, 2578018489, 2226875310, 2411029155, 3198115200, 3046200461, 2827177882, 2743944855];
    var Yw = [0, 218828297, 437656594, 387781147, 875313188, 958871085, 775562294, 590424639, 1750626376, 1699970625, 1917742170, 2135253587, 1551124588, 1367295589, 1180849278, 1265195639, 3501252752, 3720081049, 3399941250, 3350065803, 3835484340, 3919042237, 4270507174, 4085369519, 3102249176, 3051593425, 2734591178, 2952102595, 2361698556, 2177869557, 2530391278, 2614737639, 3145456443, 3060847922, 2708326185, 2892417312, 2404901663, 2187128086, 2504130317, 2555048196, 3542330227, 3727205754, 3375740769, 3292445032, 3876557655, 3926170974, 4246310725, 4027744588, 1808481195, 1723872674, 1910319033, 2094410160, 1608975247, 1391201670, 1173430173, 1224348052, 59984867, 244860394, 428169201, 344873464, 935293895, 984907214, 766078933, 547512796, 1844882806, 1627235199, 2011214180, 2062270317, 1507497298, 1423022939, 1137477952, 1321699145, 95345982, 145085239, 532201772, 313773861, 830661914, 1015671571, 731183368, 648017665, 3175501286, 2957853679, 2807058932, 2858115069, 2305455554, 2220981195, 2474404304, 2658625497, 3575528878, 3625268135, 3473416636, 3254988725, 3778151818, 3963161475, 4213447064, 4130281361, 3599595085, 3683022916, 3432737375, 3247465558, 3802222185, 4020912224, 4172763771, 4122762354, 3201631749, 3017672716, 2764249623, 2848461854, 2331590177, 2280796200, 2431590963, 2648976442, 104699613, 188127444, 472615631, 287343814, 840019705, 1058709744, 671593195, 621591778, 1852171925, 1668212892, 1953757831, 2037970062, 1514790577, 1463996600, 1080017571, 1297403050, 3673637356, 3623636965, 3235995134, 3454686199, 4007360968, 3822090177, 4107101658, 4190530515, 2997825956, 3215212461, 2830708150, 2779915199, 2256734592, 2340947849, 2627016082, 2443058075, 172466556, 122466165, 273792366, 492483431, 1047239000, 861968209, 612205898, 695634755, 1646252340, 1863638845, 2013908262, 1963115311, 1446242576, 1530455833, 1277555970, 1093597963, 1636604631, 1820824798, 2073724613, 1989249228, 1436590835, 1487645946, 1337376481, 1119727848, 164948639, 81781910, 331544205, 516552836, 1039717051, 821288114, 669961897, 719700128, 2973530695, 3157750862, 2871682645, 2787207260, 2232435299, 2283490410, 2667994737, 2450346104, 3647212047, 3564045318, 3279033885, 3464042516, 3980931627, 3762502690, 4150144569, 4199882800, 3070356634, 3121275539, 2904027272, 2686254721, 2200818878, 2384911031, 2570832044, 2486224549, 3747192018, 3528626907, 3310321856, 3359936201, 3950355702, 3867060991, 4049844452, 4234721005, 1739656202, 1790575107, 2108100632, 1890328081, 1402811438, 1586903591, 1233856572, 1149249077, 266959938, 48394827, 369057872, 418672217, 1002783846, 919489135, 567498868, 752375421, 209336225, 24197544, 376187827, 459744698, 945164165, 895287692, 574624663, 793451934, 1679968233, 1764313568, 2117360635, 1933530610, 1343127501, 1560637892, 1243112415, 1192455638, 3704280881, 3519142200, 3336358691, 3419915562, 3907448597, 3857572124, 4075877127, 4294704398, 3029510009, 3113855344, 2927934315, 2744104290, 2159976285, 2377486676, 2594734927, 2544078150];
    var YT = [0, 151849742, 303699484, 454499602, 607398968, 758720310, 908999204, 1059270954, 1214797936, 1097159550, 1517440620, 1400849762, 1817998408, 1699839814, 2118541908, 2001430874, 2429595872, 2581445614, 2194319100, 2345119218, 3034881240, 3186202582, 2801699524, 2951971274, 3635996816, 3518358430, 3399679628, 3283088770, 4237083816, 4118925222, 4002861748, 3885750714, 1002142683, 850817237, 698445255, 548169417, 529487843, 377642221, 227885567, 77089521, 1943217067, 2061379749, 1640576439, 1757691577, 1474760595, 1592394909, 1174215055, 1290801793, 2875968315, 2724642869, 3111247143, 2960971305, 2405426947, 2253581325, 2638606623, 2487810577, 3808662347, 3926825029, 4044981591, 4162096729, 3342319475, 3459953789, 3576539503, 3693126241, 1986918061, 2137062819, 1685577905, 1836772287, 1381620373, 1532285339, 1078185097, 1229899655, 1040559837, 923313619, 740276417, 621982671, 439452389, 322734571, 137073913, 19308535, 3871163981, 4021308739, 4104605777, 4255800159, 3263785589, 3414450555, 3499326569, 3651041127, 2933202493, 2815956275, 3167684641, 3049390895, 2330014213, 2213296395, 2566595609, 2448830231, 1305906550, 1155237496, 1607244650, 1455525988, 1776460110, 1626319424, 2079897426, 1928707164, 96392454, 213114376, 396673818, 514443284, 562755902, 679998000, 865136418, 983426092, 3708173718, 3557504664, 3474729866, 3323011204, 4180808110, 4030667424, 3945269170, 3794078908, 2507040230, 2623762152, 2272556026, 2390325492, 2975484382, 3092726480, 2738905026, 2857194700, 3973773121, 3856137295, 4274053469, 4157467219, 3371096953, 3252932727, 3673476453, 3556361835, 2763173681, 2915017791, 3064510765, 3215307299, 2156299017, 2307622919, 2459735317, 2610011675, 2081048481, 1963412655, 1846563261, 1729977011, 1480485785, 1362321559, 1243905413, 1126790795, 878845905, 1030690015, 645401037, 796197571, 274084841, 425408743, 38544885, 188821243, 3613494426, 3731654548, 3313212038, 3430322568, 4082475170, 4200115116, 3780097726, 3896688048, 2668221674, 2516901860, 2366882550, 2216610296, 3141400786, 2989552604, 2837966542, 2687165888, 1202797690, 1320957812, 1437280870, 1554391400, 1669664834, 1787304780, 1906247262, 2022837584, 265905162, 114585348, 499347990, 349075736, 736970802, 585122620, 972512814, 821712160, 2595684844, 2478443234, 2293045232, 2174754046, 3196267988, 3079546586, 2895723464, 2777952454, 3537852828, 3687994002, 3234156416, 3385345166, 4142626212, 4293295786, 3841024952, 3992742070, 174567692, 57326082, 410887952, 292596766, 777231668, 660510266, 1011452712, 893681702, 1108339068, 1258480242, 1343618912, 1494807662, 1715193156, 1865862730, 1948373848, 2100090966, 2701949495, 2818666809, 3004591147, 3122358053, 2235061775, 2352307457, 2535604243, 2653899549, 3915653703, 3764988233, 4219352155, 4067639125, 3444575871, 3294430577, 3746175075, 3594982253, 836553431, 953270745, 600235211, 718002117, 367585007, 484830689, 133361907, 251657213, 2041877159, 1891211689, 1806599355, 1654886325, 1568718495, 1418573201, 1335535747, 1184342925];

    function YO(xf) {
        var xc = [];

        for (var xK = 0; xK < xf["length"]; xK += 4) {
            xc["push"](xf[xK] << 24 | xf[xK + 1] << 16 | xf[xK + 2] << 8 | xf[xK + 3]);
        }

        return xc;
    }

    function Yp(xf) {
        xf = YZ(xf, !![]);
        var xc = 16 - xf["length"] % 16;
        var xK = Yu(xf["length"] + xc);
        Yn(xf, xK);

        for (var xY = xf["length"]; xY < xK["length"]; xY++) {
            xK[xY] = xc;
        }

        return xK;
    }

    function Ym(xf) {
        xf = YZ(xf, !![]);

        if (xf["length"] < 16) {
            throw new Error("PKCS#7 invalid length");
        }

        var xc = xf[xf["length"] - 1];

        if (xc > 16) {
            throw new Error("PKCS#7 padding byte out of range");
        }

        var xK = xf["length"] - xc;

        for (var xY = 0; xY < xc; xY++) {
            if (xf[xK + xY] !== xc) {
                throw new Error("PKCS#7 invalid padding byte");
            }
        }

        var xb = Yu(xK);
        return Yn(xf, xb, 0, 0, xK), xb;
    }

    var YF = function xf(xc) {
        if (!(this instanceof xf)) {
            throw Error("AES must be instanitated with `new`");
        }

        Object["defineProperty"](this, "key", {
            'value': YZ(xc, !![])
        });
        this["_prepare"]();
    };

    YF["prototype"]["_prepare"] = function () {
        var xc = YV[this["key"]["length"]];

        if (xc == null) {
            throw new Error("invalid key size (must be 16, 24 or 32 bytes)");
        }

        this["_Ke"] = [];
        this["_Kd"] = [];

        for (var xK = 0; xK <= xc; xK++) {
            this["_Ke"]["push"]([0, 0, 0, 0]);
            this["_Kd"]["push"]([0, 0, 0, 0]);
        }

        var xY = (xc + 1) * 4;
        var xb = this["key"]["length"] / 4;
        var xI = YO(this["key"]);
        var xs;

        for (var xK = 0; xK < xb; xK++) {
            xs = xK >> 2;
            this["_Ke"][xs][xK % 4] = xI[xK];
            this["_Kd"][xc - xs][xK % 4] = xI[xK];
        }

        var xx = 0;
        var xi = xb;
        var xv;

        while (xi < xY) {
            xv = xI[xb - 1];
            xI[0] ^= YL[xv >> 16 & 255] << 24 ^ YL[xv >> 8 & 255] << 16 ^ YL[xv & 255] << 8 ^ YL[xv >> 24 & 255] ^ YQ[xx] << 24;
            xx += 1;

            if (xb !== 8) {
                for (var xR = 1; xR < xb; xR++) {
                    xI[xR] ^= xI[xR - 1];
                }
            } else {
                for (var xe = 1; xe < xb / 2; xe++) {
                    xI[xe] ^= xI[xe - 1];
                }

                xv = xI[xb / 2 - 1];
                xI[xb / 2] ^= YL[xv & 255] ^ YL[xv >> 8 & 255] << 8 ^ YL[xv >> 16 & 255] << 16 ^ YL[xv >> 24 & 255] << 24;

                for (var xy = xb / 2 + 1; xy < xb; xy++) {
                    xI[xy] ^= xI[xy - 1];
                }
            }

            var xK = 0;
            var xk = void 0;
            var xa = void 0;

            while (xK < xb && xi < xY) {
                xk = xi >> 2;
                xa = xi % 4;
                this["_Ke"][xk][xa] = xI[xK];
                this["_Kd"][xc - xk][xa] = xI[xK++];
                xi++;
            }
        }

        for (var xk = 1; xk < xc; xk++) {
            for (var xa = 0; xa < 4; xa++) {
                xv = this["_Kd"][xk][xa];
                this["_Kd"][xk][xa] = Yd[xv >> 24 & 255] ^ YD[xv >> 16 & 255] ^ Yw[xv >> 8 & 255] ^ YT[xv & 255];
            }
        }
    };

    YF["prototype"]["encrypt"] = function (xc) {
        if (xc["length"] !== 16) {
            throw new Error("invalid plaintext size (must be 16 bytes)");
        }

        var xK = this["_Ke"]["length"] - 1;
        var xY = [0, 0, 0, 0];
        var xb = YO(xc);

        for (var xI = 0; xI < 4; xI++) {
            xb[xI] ^= this["_Ke"][0][xI];
        }

        for (var xs = 1; xs < xK; xs++) {
            for (var xI = 0; xI < 4; xI++) {
                xY[xI] = YW[xb[xI] >> 24 & 255] ^ Yg[xb[(xI + 1) % 4] >> 16 & 255] ^ YJ[xb[(xI + 2) % 4] >> 8 & 255] ^ YP[xb[(xI + 3) % 4] & 255] ^ this["_Ke"][xs][xI];
            }

            xb = xY["slice"]();
        }

        var xx = Yu(16);
        var xi;

        for (var xI = 0; xI < 4; xI++) {
            xi = this["_Ke"][xK][xI];
            xx[4 * xI] = (YL[xb[xI] >> 24 & 255] ^ xi >> 24) & 255;
            xx[4 * xI + 1] = (YL[xb[(xI + 1) % 4] >> 16 & 255] ^ xi >> 16) & 255;
            xx[4 * xI + 2] = (YL[xb[(xI + 2) % 4] >> 8 & 255] ^ xi >> 8) & 255;
            xx[4 * xI + 3] = (YL[xb[(xI + 3) % 4] & 255] ^ xi) & 255;
        }

        return xx;
    };

    YF["prototype"]["decrypt"] = function (xc) {
        if (xc["length"] !== 16) {
            throw new Error("invalid ciphertext size (must be 16 bytes)");
        }

        var xK = this["_Kd"]["length"] - 1;
        var xY = [0, 0, 0, 0];
        var xb = YO(xc);

        for (var xI = 0; xI < 4; xI++) {
            xb[xI] ^= this["_Kd"][0][xI];
        }

        for (var xs = 1; xs < xK; xs++) {
            for (var xI = 0; xI < 4; xI++) {
                xY[xI] = Yq[xb[xI] >> 24 & 255] ^ YX[xb[(xI + 3) % 4] >> 16 & 255] ^ YU[xb[(xI + 2) % 4] >> 8 & 255] ^ Yz[xb[(xI + 1) % 4] & 255] ^ this["_Kd"][xs][xI];
            }

            xb = xY["slice"]();
        }

        var xx = Yu(16);
        var xi;

        for (var xI = 0; xI < 4; xI++) {
            xi = this["_Kd"][xK][xI];
            xx[4 * xI] = (YB[xb[xI] >> 24 & 255] ^ xi >> 24) & 255;
            xx[4 * xI + 1] = (YB[xb[(xI + 3) % 4] >> 16 & 255] ^ xi >> 16) & 255;
            xx[4 * xI + 2] = (YB[xb[(xI + 2) % 4] >> 8 & 255] ^ xi >> 8) & 255;
            xx[4 * xI + 3] = (YB[xb[(xI + 1) % 4] & 255] ^ xi) & 255;
        }

        return xx;
    };

    var YG = function xc(xK, xY) {
        if (!(this instanceof xc)) {
            throw Error("AES must be instanitated with `new`");
        }

        this["description"] = "Cipher Block Chaining";
        this["name"] = "cbc";

        if (!xY) {
            xY = Yu(16);
        } else {
            if (xY["length"] !== 16) {
                throw new Error("invalid initialation vector size (must be 16 bytes)");
            }
        }

        this["_lastCipherblock"] = YZ(xY, !![]);
        this["_aes"] = new YF(xK);
    };

    YG["prototype"]["encrypt"] = function (xK) {
        xK = YZ(xK);

        if (xK["length"] % 16 !== 0) {
            throw new Error("invalid plaintext size (must be multiple of 16 bytes)");
        }

        var xY = Yu(xK["length"]);
        var xb = Yu(16);

        for (var xI = 0; xI < xK["length"]; xI += 16) {
            Yn(xK, xb, 0, xI, xI + 16);

            for (var xs = 0; xs < 16; xs++) {
                xb[xs] ^= this["_lastCipherblock"][xs];
            }

            this["_lastCipherblock"] = this["_aes"]["encrypt"](xb);
            Yn(this["_lastCipherblock"], xY, xI);
        }

        return xY;
    };

    YG["prototype"]["decrypt"] = function (xK) {
        xK = YZ(xK);

        if (xK["length"] % 16 !== 0) {
            throw new Error("invalid ciphertext size (must be multiple of 16 bytes)");
        }

        var xY = Yu(xK["length"]);
        var xb = Yu(16);

        for (var xI = 0; xI < xK["length"]; xI += 16) {
            Yn(xK, xb, 0, xI, xI + 16);
            xb = this["_aes"]["decrypt"](xb);

            for (var xs = 0; xs < 16; xs++) {
                xY[xI + xs] = xb[xs] ^ this["_lastCipherblock"][xs];
            }

            Yn(xK, this["_lastCipherblock"], 0, xI, xI + 16);
        }

        return xY;
    };

    var YN = {};
    YN["cbc"] = YG;
    var Yo = {};
    Yo["hex"] = Yl;
    Yo["utf8"] = YS;
    var YA = {};
    YA["pad"] = Yp;
    YA["strip"] = Ym;
    var b0 = {};
    b0["pkcs7"] = YA;
    var b1 = {};
    b1["AES"] = YF;
    b1["ModeOfOperation"] = YN;
    b1["utils"] = Yo;
    b1["padding"] = b0;
    var b2 = b1;
    ///////////////////////////////////////
    let honey;
    let by = function (x) {
        return x()
    };
    var xs = by(function () {
        return new Function(atob(config.session))();
    });

    if (xs && xs instanceof Array && xs[0] === 3) {
        var xx = 16;
        var xi = atob(config["sign"]);

        var bI = function xK(xY, xb) {
            var xI = new Uint8Array(xY["length"]);

            for (var xs = 0; xs < xY["length"]; xs++) {
                xI[xs] = xY["charCodeAt"](xs);
            }

            return [xI["subarray"](0, xb), xI["subarray"](xb)];
        };
        var xv = by(function () {
            return bI(xi, xx);
        });
        var xR = by(function () {
            return new Function(xs[1])()(b2["ModeOfOperation"]["cbc"], xv[0], Uint8Array);
        });
        var xe = by(function () {
            return xR["decrypt"](xv[1]);
        });
        var xy = by(function () {
            return b2["padding"]["pkcs7"]["strip"](xe);
        });
        xy = by(function () {
            return b2["utils"]["utf8"]["fromBytes"](xy);
        });
        let env = `window = global;
        var Buffer_ = window.Buffer;
        window.Buffer = undefined;
        screen = {
            'availHeight': 1040,
            'availLeft': 0,
            'availTop': 0,
            'availWidth': 1920,
            'colorDepth': 24,
            'height': 1080,
            'pixelDepth': 24,
            'width': 1920,
            'isExtended': true
        }
        localStorage = {
            Storage: {
                'length': 0
            }
        }
        navigator = {}
        navigator.geolocation = new (class Geolocation { });
        navigator.geolocation.getCurrentPosition = function getCurrentPosition() {
            ;
        };
        navigator.geolocation.clearWatch = function clearWatch() {
            ;
        };
        navigator.geolocation.watchPosition = function watchPosition() {
            ;
        };
        HTMLBodyElement = function HTMLBodyElement() { ; };
        `
        xy = env + xy + "return window.honey";
        honey = new Function(xy)();
    }

    /////////////////////////////////////// 
    config["_f"] = btoa(honey);
    config["f"] = btoa((honey ^ 1));
    console.log(honey);
    var ts = config.timestamp + 1000;
    var cts = config.timestamp + 2000;

    let fp_config = getCanvasFpConfigOther();

    var trace_data = {
        "ts": ts,
        "fT": get_trace_target(),
        "fT": [],
        // "mT": get_mousemove_target(ts),
        "mT": [],
        // "kT": get_keydown_target(ts),
        "kT": [],
        // "aT": get_a_click_target(ts),
        "aT": [],
        "tT": [],
        // "dT": get_mousedown_target(ts),
        "dT": [],
        "sT": [],
        "inputs": [],
        "buttons": []
    };

    let screen_width = Math.floor(1920 + (1800 - 1920) * Math.random());
    let screen_height = Math.floor(1080 + (1080 - 1200) * Math.random());
    let screen_availWidth = screen_width;
    let screen_availHeight = screen_height - 20;

    var xx = {
        'v': "2.2.2",
        'ts': ts,
        'cts': cts,
        // 'brVD': xf(),
        'brVD': [screen_width, screen_availHeight],
        // 'brR': xc(),
        'brR': [[screen_width, screen_height], [screen_availWidth, screen_availHeight], 24, 24],
        // 'bI': xb(),
        'bI': [referrer, href],
        'aM': '',
        // 'broP': xs(),
        'broP': ["Chrome PDF Plugin", "Chrome PDF Viewer"],
        'cV': Kv(getCanvasFp()),
        'wV': '',
        'wR': '',
        'wVU': '',
        'wRU': '',
        'aF': '',
        'wI': fp_config["hash"],
        'wC': JSON["stringify"](fp_config["report"]),
    };
    Object.assign(xx, {"wV": fp_config.report.vendor}); // getWebglVendor
    Object.assign(xx, {"wR": fp_config.report.renderer}); // getWebglRenderer
    Object.assign(xx, {"wVU": fp_config.report.unMaskedVendor}); // getWebglVendorUnmasked
    Object.assign(xx, {"wRU": fp_config.report.unMaskedRenderer}); // getWebglRendererUnmasked
    let xM = ["Andale Mono", "Arial", "Arial Black", "Arial Hebrew", "Arial Narrow", "Arial Rounded MT Bold", "Arial Unicode MS", "Comic Sans MS", "Courier", "Courier New", "Geneva", "Georgia", "Helvetica", "Helvetica Neue", "Impact", "LUCIDA GRANDE", "Microsoft Sans Serif", "Monaco", "Palatino", "Tahoma", "Times", "Times New Roman", "Trebuchet MS", "Verdana", "Wingdings", "Wingdings 2", "Wingdings 3", "Academy Engraved LET", "American Typewriter", "Apple Chancery", "Apple Color Emoji", "Apple SD Gothic Neo", "AVENIR", "Ayuthaya", "Bangla Sangam MN", "Baskerville", "Big Caslon", "Bodoni 72", "Bodoni 72 Oldstyle", "Bodoni 72 Smallcaps", "Bradley Hand", "Brush Script MT", "Chalkboard", "Chalkboard SE", "Chalkduster", "Cochin", "Copperplate", "Didot", "Euphemia UCAS", "Futura", "Geeza Pro", "Gill Sans", "Gujarati Sangam MN", "Gurmukhi MN", "Heiti SC", "Heiti TC", "Hiragino Kaku Gothic ProN", "Hiragino Mincho ProN", "Hoefler Text", "Kailasa", "Kannada Sangam MN", "Krungthep", "Malayalam Sangam MN", "Marion", "Marker Felt", "Nadeem", "Noteworthy", "OPTIMA", "Oriya Sangam MN", "OSAKA", "Papyrus", "Party LET", "Plantagenet Cherokee", "Rockwell", "Savoye LET", "Sinhala Sangam MN", "Skia", "Snell Roundhand", "Thonburi", "Zapfino"]
    Object.assign(xx, {"fL": Kv(xM["join"](','))});
    // Object.assign(xx, { "fL": "c4b9a0ee8100fce42be033fb80fa6a8b" });

    // xx['aG'] = Kp["getWdLength"]()["toString"]() || 0;
    xx['aG'] = "325";
    // var xt = YM["getData"]();
    // var xt = "";
    // xt ? xx['aF'] = Kv(xt) : xx['aF'] = xt;
    // xx['wA'] = Kp["getStringHashMD5"]();
    let Kh = 'webdriver,__driver_evaluate,__webdriver_evaluate,__selenium_evaluate,__fxdriver_evaluate,__driver_unwrapped,__webdriver_unwrapped,__selenium_unwrapped,__fxdriver_unwrappedwebdriver,_Selenium_IDE_Recorder,_selenium,calledSeleniumdriver-evaluate,webdriver-evaluate,selenium-evaluate,webdriverCommand,webdriver-evaluate-response';
    xx['wA'] = Kv(Kh);
    let xH = Object["assign"](xx, trace_data);
    console.log("_token_dict", JSON.stringify(xH));
    xx = xI(xH);
    let isDegrade = false;
    let behavior = bH(gen_route(), config["request_code"], isDegrade);
    let _token = xt(isDegrade, xx);
    let versionCode = "52a39d693bdd2760";
    let jsVersion = JSON.parse(JSON.parse(config["verifyMethodVersion"])["slider"])["d"];

    let body = {
        "id": config["riskLevel"],
        "request_code": config["request_code"],
        "behavior": behavior,
        "fingerprint": "",
        "action": config["action"],
        "_token": _token,
        "listIndex": "0",
        "source": "1",
        "l_d_s_c": "1",
        "l_s_c": "1",
        "s_s_c": "1",
        "v_c": versionCode, // versionCode
        "j_v": jsVersion,// jsVersion
        "3eac9809": config["request_code"].substring(15, 23)
    };

    //////////////////////////
    function IZ(xk) {
        function xa(xM) {
            return function (xt) {
                var xH = xt["body"];
                var xE = [];

                for (var xC in xH) {
                    xE["push"](xC);
                }

                return xE["sort"]()["reverse"](),
                    xE["map"](function (xr) {
                        return xr + '=' + xH[xr];
                    })["join"]('&');
            }(xM);
        }

        return xk = xa(xk),
            xk;
    };

    function Iu(xk) {
        function xa(xC) {
            return function (xr) {
                var xZ = 8;

                function xu(xg, xJ) {
                    xg[xJ >> 5] |= 128 << xJ % 32;
                    xg[(xJ + 64 >>> 9 << 4) + 14] = xJ;
                    var xP = 1732584193;
                    var xq = -271733879;
                    var xX = -1732584194;
                    var xU = 271733878;

                    for (var xz = 0; xz < xg["length"]; xz += 16) {
                        var xd = xP;
                        var xD = xq;
                        var xw = xX;
                        var xT = xU;
                        xP = xS(xP, xq, xX, xU, xg[xz + 0], 7, -680876936);
                        xU = xS(xU, xP, xq, xX, xg[xz + 1], 12, -389564586);
                        xX = xS(xX, xU, xP, xq, xg[xz + 2], 17, 606105819);
                        xq = xS(xq, xX, xU, xP, xg[xz + 3], 22, -1044525330);
                        xP = xS(xP, xq, xX, xU, xg[xz + 4], 7, -176418897);
                        xU = xS(xU, xP, xq, xX, xg[xz + 5], 12, 1200080426);
                        xX = xS(xX, xU, xP, xq, xg[xz + 6], 17, -1473231341);
                        xq = xS(xq, xX, xU, xP, xg[xz + 7], 22, -45705983);
                        xP = xS(xP, xq, xX, xU, xg[xz + 8], 7, 1770035416);
                        xU = xS(xU, xP, xq, xX, xg[xz + 9], 12, -1958414417);
                        xX = xS(xX, xU, xP, xq, xg[xz + 10], 17, -42063);
                        xq = xS(xq, xX, xU, xP, xg[xz + 11], 22, -1990404162);
                        xP = xS(xP, xq, xX, xU, xg[xz + 12], 7, 1804603682);
                        xU = xS(xU, xP, xq, xX, xg[xz + 13], 12, -40341101);
                        xX = xS(xX, xU, xP, xq, xg[xz + 14], 17, -1502002290);
                        xq = xS(xq, xX, xU, xP, xg[xz + 15], 22, 1236535329);
                        xP = xl(xP, xq, xX, xU, xg[xz + 1], 5, -165796510);
                        xU = xl(xU, xP, xq, xX, xg[xz + 6], 9, -1069501632);
                        xX = xl(xX, xU, xP, xq, xg[xz + 11], 14, 643717713);
                        xq = xl(xq, xX, xU, xP, xg[xz + 0], 20, -373897302);
                        xP = xl(xP, xq, xX, xU, xg[xz + 5], 5, -701558691);
                        xU = xl(xU, xP, xq, xX, xg[xz + 10], 9, 38016083);
                        xX = xl(xX, xU, xP, xq, xg[xz + 15], 14, -660478335);
                        xq = xl(xq, xX, xU, xP, xg[xz + 4], 20, -405537848);
                        xP = xl(xP, xq, xX, xU, xg[xz + 9], 5, 568446438);
                        xU = xl(xU, xP, xq, xX, xg[xz + 14], 9, -1019803690);
                        xX = xl(xX, xU, xP, xq, xg[xz + 3], 14, -187363961);
                        xq = xl(xq, xX, xU, xP, xg[xz + 8], 20, 1163531501);
                        xP = xl(xP, xq, xX, xU, xg[xz + 13], 5, -1444681467);
                        xU = xl(xU, xP, xq, xX, xg[xz + 2], 9, -51403784);
                        xX = xl(xX, xU, xP, xq, xg[xz + 7], 14, 1735328473);
                        xq = xl(xq, xX, xU, xP, xg[xz + 12], 20, -1926607734);
                        xP = xh(xP, xq, xX, xU, xg[xz + 5], 4, -378558);
                        xU = xh(xU, xP, xq, xX, xg[xz + 8], 11, -2022574463);
                        xX = xh(xX, xU, xP, xq, xg[xz + 11], 16, 1839030562);
                        xq = xh(xq, xX, xU, xP, xg[xz + 14], 23, -35309556);
                        xP = xh(xP, xq, xX, xU, xg[xz + 1], 4, -1530992060);
                        xU = xh(xU, xP, xq, xX, xg[xz + 4], 11, 1272893353);
                        xX = xh(xX, xU, xP, xq, xg[xz + 7], 16, -155497632);
                        xq = xh(xq, xX, xU, xP, xg[xz + 10], 23, -1094730640);
                        xP = xh(xP, xq, xX, xU, xg[xz + 13], 4, 681279174);
                        xU = xh(xU, xP, xq, xX, xg[xz + 0], 11, -358537222);
                        xX = xh(xX, xU, xP, xq, xg[xz + 3], 16, -722521979);
                        xq = xh(xq, xX, xU, xP, xg[xz + 6], 23, 76029189);
                        xP = xh(xP, xq, xX, xU, xg[xz + 9], 4, -640364487);
                        xU = xh(xU, xP, xq, xX, xg[xz + 12], 11, -421815835);
                        xX = xh(xX, xU, xP, xq, xg[xz + 15], 16, 530742520);
                        xq = xh(xq, xX, xU, xP, xg[xz + 2], 23, -995338651);
                        xP = xV(xP, xq, xX, xU, xg[xz + 0], 6, -198630844);
                        xU = xV(xU, xP, xq, xX, xg[xz + 7], 10, 1126891415);
                        xX = xV(xX, xU, xP, xq, xg[xz + 14], 15, -1416354905);
                        xq = xV(xq, xX, xU, xP, xg[xz + 5], 21, -57434055);
                        xP = xV(xP, xq, xX, xU, xg[xz + 12], 6, 1700485571);
                        xU = xV(xU, xP, xq, xX, xg[xz + 3], 10, -1894986606);
                        xX = xV(xX, xU, xP, xq, xg[xz + 10], 15, -1051523);
                        xq = xV(xq, xX, xU, xP, xg[xz + 1], 21, -2054922799);
                        xP = xV(xP, xq, xX, xU, xg[xz + 8], 6, 1873313359);
                        xU = xV(xU, xP, xq, xX, xg[xz + 15], 10, -30611744);
                        xX = xV(xX, xU, xP, xq, xg[xz + 6], 15, -1560198380);
                        xq = xV(xq, xX, xU, xP, xg[xz + 13], 21, 1309151649);
                        xP = xV(xP, xq, xX, xU, xg[xz + 4], 6, -145523070);
                        xU = xV(xU, xP, xq, xX, xg[xz + 11], 10, -1120210379);
                        xX = xV(xX, xU, xP, xq, xg[xz + 2], 15, 718787259);
                        xq = xV(xq, xX, xU, xP, xg[xz + 9], 21, -343485551);
                        xP = xQ(xP, xd);
                        xq = xQ(xq, xD);
                        xX = xQ(xX, xw);
                        xU = xQ(xU, xT);
                    }

                    return Array(xP, xq, xX, xU);
                }

                function xn(xg, xJ, xP, xq, xX, xU) {
                    return xQ(xL(xQ(xQ(xJ, xg), xQ(xq, xU)), xX), xP);
                }

                function xS(xg, xJ, xP, xq, xX, xU, xz) {
                    return xn(xJ & xP | ~xJ & xq, xg, xJ, xX, xU, xz);
                }

                function xl(xg, xJ, xP, xq, xX, xU, xz) {
                    return xn(xJ & xq | xP & ~xq, xg, xJ, xX, xU, xz);
                }

                function xh(xg, xJ, xP, xq, xX, xU, xz) {
                    return xn(xJ ^ xP ^ xq, xg, xJ, xX, xU, xz);
                }

                function xV(xg, xJ, xP, xq, xX, xU, xz) {
                    return xn(xP ^ (xJ | ~xq), xg, xJ, xX, xU, xz);
                }

                function xQ(xg, xJ) {
                    var xP = (xg & 65535) + (xJ & 65535);
                    var xq = (xg >> 16) + (xJ >> 16) + (xP >> 16);
                    return xq << 16 | xP & 65535;
                }

                function xL(xg, xJ) {
                    return xg << xJ | xg >>> 32 - xJ;
                }

                function xB(xg) {
                    var xJ = Array();
                    var xP = (1 << xZ) - 1;

                    for (var xq = 0; xq < xg["length"] * xZ; xq += xZ) {
                        xJ[xq >> 5] |= (xg["charCodeAt"](xq / xZ) & xP) << xq % 32;
                    }

                    return xJ;
                }

                function xW(xg) {
                    var xJ = "0123456789abcdef";
                    var xP = '';

                    for (var xq = 0; xq < xg["length"] * 4; xq++) {
                        xP += xJ["charAt"](xg[xq >> 2] >> xq % 4 * 8 + 4 & 15) + xJ["charAt"](xg[xq >> 2] >> xq % 4 * 8 & 15);
                    }

                    return xP;
                }

                return xW(xu(xB(xr), xr["length"] * xZ));
            }(xC);
        }

        xk = xa(xk);

        function xM(xC) {
            return function (xr) {
                var xZ = 8;

                function xu(xX, xU) {
                    var xz = (xX & 65535) + (xU & 65535);
                    var xd = (xX >> 16) + (xU >> 16) + (xz >> 16);
                    return xd << 16 | xz & 65535;
                }

                function xn(xX, xU) {
                    return xX >>> xU | xX << 32 - xU;
                }

                function xS(xX, xU) {
                    return xX >>> xU;
                }

                function xl(xX, xU, xz) {
                    return xX & xU ^ ~xX & xz;
                }

                function xh(xX, xU, xz) {
                    return xX & xU ^ xX & xz ^ xU & xz;
                }

                function xV(xX) {
                    return xn(xX, 2) ^ xn(xX, 13) ^ xn(xX, 22);
                }

                function xQ(xX) {
                    return xn(xX, 6) ^ xn(xX, 11) ^ xn(xX, 25);
                }

                function xL(xX) {
                    return xn(xX, 7) ^ xn(xX, 18) ^ xS(xX, 3);
                }

                function xB(xX) {
                    return xn(xX, 17) ^ xn(xX, 19) ^ xS(xX, 10);
                }

                function xW(xX, xU) {
                    var xz = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298];
                    var xd = [1779033703, 3144134277, 1013904242, 2773480762, 1359893119, 2600822924, 528734635, 1541459225];
                    var xD = new Array(64);
                    var xw = void 0;
                    var xT = void 0;
                    var xO = void 0;
                    var xp = void 0;
                    var xm = void 0;
                    var xF = void 0;
                    var xG = void 0;
                    var xN = void 0;
                    var xo = void 0;
                    var xA = void 0;
                    var i0 = void 0;
                    var i1 = void 0;
                    xX[xU >> 5] |= 128 << 24 - xU % 32;
                    xX[(xU + 64 >> 9 << 4) + 15] = xU;

                    for (xo = 0; xo < xX["length"]; xo += 16) {
                        xw = xd[0];
                        xT = xd[1];
                        xO = xd[2];
                        xp = xd[3];
                        xm = xd[4];
                        xF = xd[5];
                        xG = xd[6];
                        xN = xd[7];

                        for (xA = 0; xA < 64; xA++) {
                            xA < 16 ? xD[xA] = xX[xA + xo] : xD[xA] = xu(xu(xu(xB(xD[xA - 2]), xD[xA - 7]), xL(xD[xA - 15])), xD[xA - 16]);
                            i0 = xu(xu(xu(xu(xN, xQ(xm)), xl(xm, xF, xG)), xz[xA]), xD[xA]);
                            i1 = xu(xV(xw), xh(xw, xT, xO));
                            xN = xG;
                            xG = xF;
                            xF = xm;
                            xm = xu(xp, i0);
                            xp = xO;
                            xO = xT;
                            xT = xw;
                            xw = xu(i0, i1);
                        }

                        xd[0] = xu(xw, xd[0]);
                        xd[1] = xu(xT, xd[1]);
                        xd[2] = xu(xO, xd[2]);
                        xd[3] = xu(xp, xd[3]);
                        xd[4] = xu(xm, xd[4]);
                        xd[5] = xu(xF, xd[5]);
                        xd[6] = xu(xG, xd[6]);
                        xd[7] = xu(xN, xd[7]);
                    }

                    return xd;
                }

                function xg(xX) {
                    var xU = [];
                    var xz = (1 << xZ) - 1;

                    for (var xd = 0; xd < xX["length"] * xZ; xd += xZ) {
                        xU[xd >> 5] |= (xX["charCodeAt"](xd / xZ) & xz) << 24 - xd % 32;
                    }

                    return xU;
                }

                function xJ(xX) {
                    xX = xX["replace"](/\r\n/g, '\x0a');
                    var xU = '';

                    for (var xz = 0; xz < xX["length"]; xz++) {
                        var xd = xX["charCodeAt"](xz);

                        if (xd < 128) {
                            xU += String["fromCharCode"](xd);
                        } else {
                            xd > 127 && xd < 2048 ? (xU += String["fromCharCode"](xd >> 6 | 192), xU += String["fromCharCode"](xd & 63 | 128)) : (xU += String["fromCharCode"](xd >> 12 | 224), xU += String["fromCharCode"](xd >> 6 & 63 | 128), xU += String["fromCharCode"](xd & 63 | 128));
                        }
                    }

                    return xU;
                }

                function xP(xX) {
                    var xU = "0123456789abcdef";
                    var xz = '';

                    for (var xd = 0; xd < xX["length"] * 4; xd++) {
                        xz += xU["charAt"](xX[xd >> 2] >> (3 - xd % 4) * 8 + 4 & 15) + xU["charAt"](xX[xd >> 2] >> (3 - xd % 4) * 8 & 15);
                    }

                    return xz;
                }

                var xq = xJ(xr);
                return xP(xW(xg(xq), xq["length"] * xZ));
            }(xC);
        }

        xk = xM(xk);

        function xt(xC) {
            return function (xr) {
                var xZ = 0;

                function xu(xz) {
                    return xS(xn(xl(xz)));
                }

                function xn(xz) {
                    return xV(xL(xh(xz), xz["length"] * 8));
                }

                function xS(xz) {
                    try {
                        xZ;
                    } catch (xO) {
                        xZ = 0;
                    }

                    var xd = xZ ? "0123456789ABCDEF" : "0123456789abcdef";
                    var xD = '';
                    var xw;

                    for (var xT = 0; xT < xz["length"]; xT++) {
                        xw = xz["charCodeAt"](xT);
                        xD += xd["charAt"](xw >>> 4 & 15) + xd["charAt"](xw & 15);
                    }

                    return xD;
                }

                function xl(xz) {
                    var xd = '';
                    var xD = -1;
                    var xw;
                    var xT;

                    while (++xD < xz["length"]) {
                        xw = xz["charCodeAt"](xD);
                        xT = xD + 1 < xz["length"] ? xz["charCodeAt"](xD + 1) : 0;
                        55296 <= xw && xw <= 56319 && 56320 <= xT && xT <= 57343 && (xw = 65536 + ((xw & 1023) << 10) + (xT & 1023), xD++);

                        if (xw <= 127) {
                            xd += String["fromCharCode"](xw);
                        } else {
                            if (xw <= 2047) {
                                xd += String["fromCharCode"](192 | xw >>> 6 & 31, 128 | xw & 63);
                            } else {
                                if (xw <= 65535) {
                                    xd += String["fromCharCode"](224 | xw >>> 12 & 15, 128 | xw >>> 6 & 63, 128 | xw & 63);
                                } else {
                                    if (xw <= 2097151) {
                                        xd += String["fromCharCode"](240 | xw >>> 18 & 7, 128 | xw >>> 12 & 63, 128 | xw >>> 6 & 63, 128 | xw & 63);
                                    }
                                }
                            }
                        }
                    }

                    return xd;
                }

                function xh(xz) {
                    var xd = Array(xz["length"] >> 2);

                    for (var xD = 0; xD < xd["length"]; xD++) {
                        xd[xD] = 0;
                    }

                    for (var xD = 0; xD < xz["length"] * 8; xD += 8) {
                        xd[xD >> 5] |= (xz["charCodeAt"](xD / 8) & 255) << 24 - xD % 32;
                    }

                    return xd;
                }

                function xV(xz) {
                    var xd = '';

                    for (var xD = 0; xD < xz["length"] * 32; xD += 8) {
                        xd += String["fromCharCode"](xz[xD >> 5] >>> 24 - xD % 32 & 255);
                    }

                    return xd;
                }

                var xQ;

                function xL(xz, xd) {
                    xQ == undefined && (xQ = new Array(new xB(1116352408, -685199838), new xB(1899447441, 602891725), new xB(-1245643825, -330482897), new xB(-373957723, -2121671748), new xB(961987163, -213338824), new xB(1508970993, -1241133031), new xB(-1841331548, -1357295717), new xB(-1424204075, -630357736), new xB(-670586216, -1560083902), new xB(310598401, 1164996542), new xB(607225278, 1323610764), new xB(1426881987, -704662302), new xB(1925078388, -226784913), new xB(-2132889090, 991336113), new xB(-1680079193, 633803317), new xB(-1046744716, -815192428), new xB(-459576895, -1628353838), new xB(-272742522, 944711139), new xB(264347078, -1953704523), new xB(604807628, 2007800933), new xB(770255983, 1495990901), new xB(1249150122, 1856431235), new xB(1555081692, -1119749164), new xB(1996064986, -2096016459), new xB(-1740746414, -295247957), new xB(-1473132947, 766784016), new xB(-1341970488, -1728372417), new xB(-1084653625, -1091629340), new xB(-958395405, 1034457026), new xB(-710438585, -1828018395), new xB(113926993, -536640913), new xB(338241895, 168717936), new xB(666307205, 1188179964), new xB(773529912, 1546045734), new xB(1294757372, 1522805485), new xB(1396182291, -1651133473), new xB(1695183700, -1951439906), new xB(1986661051, 1014477480), new xB(-2117940946, 1206759142), new xB(-1838011259, 344077627), new xB(-1564481375, 1290863460), new xB(-1474664885, -1136513023), new xB(-1035236496, -789014639), new xB(-949202525, 106217008), new xB(-778901479, -688958952), new xB(-694614492, 1432725776), new xB(-200395387, 1467031594), new xB(275423344, 851169720), new xB(430227734, -1194143544), new xB(506948616, 1363258195), new xB(659060556, -544281703), new xB(883997877, -509917016), new xB(958139571, -976659869), new xB(1322822218, -482243893), new xB(1537002063, 2003034995), new xB(1747873779, -692930397), new xB(1955562222, 1575990012), new xB(2024104815, 1125592928), new xB(-2067236844, -1578062990), new xB(-1933114872, 442776044), new xB(-1866530822, 593698344), new xB(-1538233109, -561857047), new xB(-1090935817, -1295615723), new xB(-965641998, -479046869), new xB(-903397682, -366583396), new xB(-779700025, 566280711), new xB(-354779690, -840897762), new xB(-176337025, -294727304), new xB(116418474, 1914138554), new xB(174292421, -1563912026), new xB(289380356, -1090974290), new xB(460393269, 320620315), new xB(685471733, 587496836), new xB(852142971, 1086792851), new xB(1017036298, 365543100), new xB(1126000580, -1676669620), new xB(1288033470, -885112138), new xB(1501505948, -60457430), new xB(1607167915, 987167468), new xB(1816402316, 1246189591)));
                    var xD = new Array(new xB(1779033703, -205731576), new xB(-1150833019, -2067093701), new xB(1013904242, -23791573), new xB(-1521486534, 1595750129), new xB(1359893119, -1377402159), new xB(-1694144372, 725511199), new xB(528734635, -79577749), new xB(1541459225, 327033209));
                    var xw = new xB(0, 0);
                    var xT = new xB(0, 0);
                    var xO = new xB(0, 0);
                    var xp = new xB(0, 0);
                    var xm = new xB(0, 0);
                    var xF = new xB(0, 0);
                    var xG = new xB(0, 0);
                    var xN = new xB(0, 0);
                    var xo = new xB(0, 0);
                    var xA = new xB(0, 0);
                    var i0 = new xB(0, 0);
                    var i1 = new xB(0, 0);
                    var i2 = new xB(0, 0);
                    var i3 = new xB(0, 0);
                    var i4 = new xB(0, 0);
                    var i5 = new xB(0, 0);
                    var i6 = new xB(0, 0);
                    var i7;
                    var i8;
                    var i9 = new Array(80);

                    for (i8 = 0; i8 < 80; i8++) {
                        i9[i8] = new xB(0, 0);
                    }

                    xz[xd >> 5] |= 128 << 24 - (xd & 31);
                    xz[(xd + 128 >> 10 << 5) + 31] = xd;

                    for (i8 = 0; i8 < xz["length"]; i8 += 32) {
                        xW(xO, xD[0]);
                        xW(xp, xD[1]);
                        xW(xm, xD[2]);
                        xW(xF, xD[3]);
                        xW(xG, xD[4]);
                        xW(xN, xD[5]);
                        xW(xo, xD[6]);
                        xW(xA, xD[7]);

                        for (i7 = 0; i7 < 16; i7++) {
                            i9[i7]['h'] = xz[i8 + 2 * i7];
                            i9[i7]['l'] = xz[i8 + 2 * i7 + 1];
                        }

                        for (i7 = 16; i7 < 80; i7++) {
                            xg(i4, i9[i7 - 2], 19);
                            xJ(i5, i9[i7 - 2], 29);
                            xP(i6, i9[i7 - 2], 6);
                            i1['l'] = i4['l'] ^ i5['l'] ^ i6['l'];
                            i1['h'] = i4['h'] ^ i5['h'] ^ i6['h'];
                            xg(i4, i9[i7 - 15], 1);
                            xg(i5, i9[i7 - 15], 8);
                            xP(i6, i9[i7 - 15], 7);
                            i0['l'] = i4['l'] ^ i5['l'] ^ i6['l'];
                            i0['h'] = i4['h'] ^ i5['h'] ^ i6['h'];
                            xX(i9[i7], i1, i9[i7 - 7], i0, i9[i7 - 16]);
                        }

                        for (i7 = 0; i7 < 80; i7++) {
                            i2['l'] = xG['l'] & xN['l'] ^ ~xG['l'] & xo['l'];
                            i2['h'] = xG['h'] & xN['h'] ^ ~xG['h'] & xo['h'];
                            xg(i4, xG, 14);
                            xg(i5, xG, 18);
                            xJ(i6, xG, 9);
                            i1['l'] = i4['l'] ^ i5['l'] ^ i6['l'];
                            i1['h'] = i4['h'] ^ i5['h'] ^ i6['h'];
                            xg(i4, xO, 28);
                            xJ(i5, xO, 2);
                            xJ(i6, xO, 7);
                            i0['l'] = i4['l'] ^ i5['l'] ^ i6['l'];
                            i0['h'] = i4['h'] ^ i5['h'] ^ i6['h'];
                            i3['l'] = xO['l'] & xp['l'] ^ xO['l'] & xm['l'] ^ xp['l'] & xm['l'];
                            i3['h'] = xO['h'] & xp['h'] ^ xO['h'] & xm['h'] ^ xp['h'] & xm['h'];
                            xU(xw, xA, i1, i2, xQ[i7], i9[i7]);
                            xq(xT, i0, i3);
                            xW(xA, xo);
                            xW(xo, xN);
                            xW(xN, xG);
                            xq(xG, xF, xw);
                            xW(xF, xm);
                            xW(xm, xp);
                            xW(xp, xO);
                            xq(xO, xw, xT);
                        }

                        xq(xD[0], xD[0], xO);
                        xq(xD[1], xD[1], xp);
                        xq(xD[2], xD[2], xm);
                        xq(xD[3], xD[3], xF);
                        xq(xD[4], xD[4], xG);
                        xq(xD[5], xD[5], xN);
                        xq(xD[6], xD[6], xo);
                        xq(xD[7], xD[7], xA);
                    }

                    var ij = new Array(16);

                    for (i8 = 0; i8 < 8; i8++) {
                        ij[2 * i8] = xD[i8]['h'];
                        ij[2 * i8 + 1] = xD[i8]['l'];
                    }

                    return ij;
                }

                function xB(xz, xd) {
                    this['h'] = xz;
                    this['l'] = xd;
                }

                function xW(xz, xd) {
                    xz['h'] = xd['h'];
                    xz['l'] = xd['l'];
                }

                function xg(xz, xd, xD) {
                    xz['l'] = xd['l'] >>> xD | xd['h'] << 32 - xD;
                    xz['h'] = xd['h'] >>> xD | xd['l'] << 32 - xD;
                }

                function xJ(xz, xd, xD) {
                    xz['l'] = xd['h'] >>> xD | xd['l'] << 32 - xD;
                    xz['h'] = xd['l'] >>> xD | xd['h'] << 32 - xD;
                }

                function xP(xz, xd, xD) {
                    xz['l'] = xd['l'] >>> xD | xd['h'] << 32 - xD;
                    xz['h'] = xd['h'] >>> xD;
                }

                function xq(xz, xd, xD) {
                    var xw = (xd['l'] & 65535) + (xD['l'] & 65535);
                    var xT = (xd['l'] >>> 16) + (xD['l'] >>> 16) + (xw >>> 16);
                    var xO = (xd['h'] & 65535) + (xD['h'] & 65535) + (xT >>> 16);
                    var xp = (xd['h'] >>> 16) + (xD['h'] >>> 16) + (xO >>> 16);
                    xz['l'] = xw & 65535 | xT << 16;
                    xz['h'] = xO & 65535 | xp << 16;
                }

                function xX(xz, xd, xD, xw, xT) {
                    var xO = (xd['l'] & 65535) + (xD['l'] & 65535) + (xw['l'] & 65535) + (xT['l'] & 65535);
                    var xp = (xd['l'] >>> 16) + (xD['l'] >>> 16) + (xw['l'] >>> 16) + (xT['l'] >>> 16) + (xO >>> 16);
                    var xm = (xd['h'] & 65535) + (xD['h'] & 65535) + (xw['h'] & 65535) + (xT['h'] & 65535) + (xp >>> 16);
                    var xF = (xd['h'] >>> 16) + (xD['h'] >>> 16) + (xw['h'] >>> 16) + (xT['h'] >>> 16) + (xm >>> 16);
                    xz['l'] = xO & 65535 | xp << 16;
                    xz['h'] = xm & 65535 | xF << 16;
                }

                function xU(xz, xd, xD, xw, xT, xO) {
                    var xp = (xd['l'] & 65535) + (xD['l'] & 65535) + (xw['l'] & 65535) + (xT['l'] & 65535) + (xO['l'] & 65535);
                    var xm = (xd['l'] >>> 16) + (xD['l'] >>> 16) + (xw['l'] >>> 16) + (xT['l'] >>> 16) + (xO['l'] >>> 16) + (xp >>> 16);
                    var xF = (xd['h'] & 65535) + (xD['h'] & 65535) + (xw['h'] & 65535) + (xT['h'] & 65535) + (xO['h'] & 65535) + (xm >>> 16);
                    var xG = (xd['h'] >>> 16) + (xD['h'] >>> 16) + (xw['h'] >>> 16) + (xT['h'] >>> 16) + (xO['h'] >>> 16) + (xF >>> 16);
                    xz['l'] = xp & 65535 | xm << 16;
                    xz['h'] = xF & 65535 | xG << 16;
                }

                return xu(xr)["toLowerCase"]();
            }(xC);
        }

        xk = xt(xk);

        function xH(xC) {
            return function (xr) {
                var xZ = 0;

                function xu(xz) {
                    return xS(xn(xl(xz)));
                }

                function xn(xz) {
                    return xV(xL(xh(xz), xz["length"] * 8));
                }

                function xS(xz) {
                    try {
                        xZ;
                    } catch (xO) {
                        xZ = 0;
                    }

                    var xd = xZ ? "0123456789ABCDEF" : "0123456789abcdef";
                    var xD = '';
                    var xw;

                    for (var xT = 0; xT < xz["length"]; xT++) {
                        xw = xz["charCodeAt"](xT);
                        xD += xd["charAt"](xw >>> 4 & 15) + xd["charAt"](xw & 15);
                    }

                    return xD;
                }

                function xl(xz) {
                    var xd = '';
                    var xD = -1;
                    var xw;
                    var xT;

                    while (++xD < xz["length"]) {
                        xw = xz["charCodeAt"](xD);
                        xT = xD + 1 < xz["length"] ? xz["charCodeAt"](xD + 1) : 0;
                        55296 <= xw && xw <= 56319 && 56320 <= xT && xT <= 57343 && (xw = 65536 + ((xw & 1023) << 10) + (xT & 1023), xD++);

                        if (xw <= 127) {
                            xd += String["fromCharCode"](xw);
                        } else {
                            if (xw <= 2047) {
                                xd += String["fromCharCode"](192 | xw >>> 6 & 31, 128 | xw & 63);
                            } else {
                                if (xw <= 65535) {
                                    xd += String["fromCharCode"](224 | xw >>> 12 & 15, 128 | xw >>> 6 & 63, 128 | xw & 63);
                                } else {
                                    if (xw <= 2097151) {
                                        xd += String["fromCharCode"](240 | xw >>> 18 & 7, 128 | xw >>> 12 & 63, 128 | xw >>> 6 & 63, 128 | xw & 63);
                                    }
                                }
                            }
                        }
                    }

                    return xd;
                }

                function xh(xz) {
                    var xd = Array(xz["length"] >> 2);

                    for (var xD = 0; xD < xd["length"]; xD++) {
                        xd[xD] = 0;
                    }

                    for (var xD = 0; xD < xz["length"] * 8; xD += 8) {
                        xd[xD >> 5] |= (xz["charCodeAt"](xD / 8) & 255) << 24 - xD % 32;
                    }

                    return xd;
                }

                function xV(xz) {
                    var xd = '';

                    for (var xD = 0; xD < xz["length"] * 32; xD += 8) {
                        xd += String["fromCharCode"](xz[xD >> 5] >>> 24 - xD % 32 & 255);
                    }

                    return xd;
                }

                var xQ;

                function xL(xz, xd) {
                    xQ == undefined && (xQ = new Array(new xB(1116352408, -685199838), new xB(1899447441, 602891725), new xB(-1245643825, -330482897), new xB(-373957723, -2121671748), new xB(961987163, -213338824), new xB(1508970993, -1241133031), new xB(-1841331548, -1357295717), new xB(-1424204075, -630357736), new xB(-670586216, -1560083902), new xB(310598401, 1164996542), new xB(607225278, 1323610764), new xB(1426881987, -704662302), new xB(1925078388, -226784913), new xB(-2132889090, 991336113), new xB(-1680079193, 633803317), new xB(-1046744716, -815192428), new xB(-459576895, -1628353838), new xB(-272742522, 944711139), new xB(264347078, -1953704523), new xB(604807628, 2007800933), new xB(770255983, 1495990901), new xB(1249150122, 1856431235), new xB(1555081692, -1119749164), new xB(1996064986, -2096016459), new xB(-1740746414, -295247957), new xB(-1473132947, 766784016), new xB(-1341970488, -1728372417), new xB(-1084653625, -1091629340), new xB(-958395405, 1034457026), new xB(-710438585, -1828018395), new xB(113926993, -536640913), new xB(338241895, 168717936), new xB(666307205, 1188179964), new xB(773529912, 1546045734), new xB(1294757372, 1522805485), new xB(1396182291, -1651133473), new xB(1695183700, -1951439906), new xB(1986661051, 1014477480), new xB(-2117940946, 1206759142), new xB(-1838011259, 344077627), new xB(-1564481375, 1290863460), new xB(-1474664885, -1136513023), new xB(-1035236496, -789014639), new xB(-949202525, 106217008), new xB(-778901479, -688958952), new xB(-694614492, 1432725776), new xB(-200395387, 1467031594), new xB(275423344, 851169720), new xB(430227734, -1194143544), new xB(506948616, 1363258195), new xB(659060556, -544281703), new xB(883997877, -509917016), new xB(958139571, -976659869), new xB(1322822218, -482243893), new xB(1537002063, 2003034995), new xB(1747873779, -692930397), new xB(1955562222, 1575990012), new xB(2024104815, 1125592928), new xB(-2067236844, -1578062990), new xB(-1933114872, 442776044), new xB(-1866530822, 593698344), new xB(-1538233109, -561857047), new xB(-1090935817, -1295615723), new xB(-965641998, -479046869), new xB(-903397682, -366583396), new xB(-779700025, 566280711), new xB(-354779690, -840897762), new xB(-176337025, -294727304), new xB(116418474, 1914138554), new xB(174292421, -1563912026), new xB(289380356, -1090974290), new xB(460393269, 320620315), new xB(685471733, 587496836), new xB(852142971, 1086792851), new xB(1017036298, 365543100), new xB(1126000580, -1676669620), new xB(1288033470, -885112138), new xB(1501505948, -60457430), new xB(1607167915, 987167468), new xB(1816402316, 1246189591)));
                    var xD = new Array(new xB(1779033703, -205731576), new xB(-1150833019, -2067093701), new xB(1013904242, -23791573), new xB(-1521486534, 1595750129), new xB(1359893119, -1377402159), new xB(-1694144372, 725511199), new xB(528734635, -79577749), new xB(1541459225, 327033209));
                    var xw = new xB(0, 0);
                    var xT = new xB(0, 0);
                    var xO = new xB(0, 0);
                    var xp = new xB(0, 0);
                    var xm = new xB(0, 0);
                    var xF = new xB(0, 0);
                    var xG = new xB(0, 0);
                    var xN = new xB(0, 0);
                    var xo = new xB(0, 0);
                    var xA = new xB(0, 0);
                    var i0 = new xB(0, 0);
                    var i1 = new xB(0, 0);
                    var i2 = new xB(0, 0);
                    var i3 = new xB(0, 0);
                    var i4 = new xB(0, 0);
                    var i5 = new xB(0, 0);
                    var i6 = new xB(0, 0);
                    var i7;
                    var i8;
                    var i9 = new Array(80);

                    for (i8 = 0; i8 < 80; i8++) {
                        i9[i8] = new xB(0, 0);
                    }

                    xz[xd >> 5] |= 128 << 24 - (xd & 31);
                    xz[(xd + 128 >> 10 << 5) + 31] = xd;

                    for (i8 = 0; i8 < xz["length"]; i8 += 32) {
                        xW(xO, xD[0]);
                        xW(xp, xD[1]);
                        xW(xm, xD[2]);
                        xW(xF, xD[3]);
                        xW(xG, xD[4]);
                        xW(xN, xD[5]);
                        xW(xo, xD[6]);
                        xW(xA, xD[7]);

                        for (i7 = 0; i7 < 16; i7++) {
                            i9[i7]['h'] = xz[i8 + 2 * i7];
                            i9[i7]['l'] = xz[i8 + 2 * i7 + 1];
                        }

                        for (i7 = 16; i7 < 80; i7++) {
                            xg(i4, i9[i7 - 2], 19);
                            xJ(i5, i9[i7 - 2], 29);
                            xP(i6, i9[i7 - 2], 6);
                            i1['l'] = i4['l'] ^ i5['l'] ^ i6['l'];
                            i1['h'] = i4['h'] ^ i5['h'] ^ i6['h'];
                            xg(i4, i9[i7 - 15], 1);
                            xg(i5, i9[i7 - 15], 8);
                            xP(i6, i9[i7 - 15], 7);
                            i0['l'] = i4['l'] ^ i5['l'] ^ i6['l'];
                            i0['h'] = i4['h'] ^ i5['h'] ^ i6['h'];
                            xX(i9[i7], i1, i9[i7 - 7], i0, i9[i7 - 16]);
                        }

                        for (i7 = 0; i7 < 80; i7++) {
                            i2['l'] = xG['l'] & xN['l'] ^ ~xG['l'] & xo['l'];
                            i2['h'] = xG['h'] & xN['h'] ^ ~xG['h'] & xo['h'];
                            xg(i4, xG, 14);
                            xg(i5, xG, 18);
                            xJ(i6, xG, 9);
                            i1['l'] = i4['l'] ^ i5['l'] ^ i6['l'];
                            i1['h'] = i4['h'] ^ i5['h'] ^ i6['h'];
                            xg(i4, xO, 28);
                            xJ(i5, xO, 2);
                            xJ(i6, xO, 7);
                            i0['l'] = i4['l'] ^ i5['l'] ^ i6['l'];
                            i0['h'] = i4['h'] ^ i5['h'] ^ i6['h'];
                            i3['l'] = xO['l'] & xp['l'] ^ xO['l'] & xm['l'] ^ xp['l'] & xm['l'];
                            i3['h'] = xO['h'] & xp['h'] ^ xO['h'] & xm['h'] ^ xp['h'] & xm['h'];
                            xU(xw, xA, i1, i2, xQ[i7], i9[i7]);
                            xq(xT, i0, i3);
                            xW(xA, xo);
                            xW(xo, xN);
                            xW(xN, xG);
                            xq(xG, xF, xw);
                            xW(xF, xm);
                            xW(xm, xp);
                            xW(xp, xO);
                            xq(xO, xw, xT);
                        }

                        xq(xD[0], xD[0], xO);
                        xq(xD[1], xD[1], xp);
                        xq(xD[2], xD[2], xm);
                        xq(xD[3], xD[3], xF);
                        xq(xD[4], xD[4], xG);
                        xq(xD[5], xD[5], xN);
                        xq(xD[6], xD[6], xo);
                        xq(xD[7], xD[7], xA);
                    }

                    var ij = new Array(16);

                    for (i8 = 0; i8 < 8; i8++) {
                        ij[2 * i8] = xD[i8]['h'];
                        ij[2 * i8 + 1] = xD[i8]['l'];
                    }

                    return ij;
                }

                function xB(xz, xd) {
                    this['h'] = xz;
                    this['l'] = xd;
                }

                function xW(xz, xd) {
                    xz['h'] = xd['h'];
                    xz['l'] = xd['l'];
                }

                function xg(xz, xd, xD) {
                    xz['l'] = xd['l'] >>> xD | xd['h'] << 32 - xD;
                    xz['h'] = xd['h'] >>> xD | xd['l'] << 32 - xD;
                }

                function xJ(xz, xd, xD) {
                    xz['l'] = xd['h'] >>> xD | xd['l'] << 32 - xD;
                    xz['h'] = xd['l'] >>> xD | xd['h'] << 32 - xD;
                }

                function xP(xz, xd, xD) {
                    xz['l'] = xd['l'] >>> xD | xd['h'] << 32 - xD;
                    xz['h'] = xd['h'] >>> xD;
                }

                function xq(xz, xd, xD) {
                    var xw = (xd['l'] & 65535) + (xD['l'] & 65535);
                    var xT = (xd['l'] >>> 16) + (xD['l'] >>> 16) + (xw >>> 16);
                    var xO = (xd['h'] & 65535) + (xD['h'] & 65535) + (xT >>> 16);
                    var xp = (xd['h'] >>> 16) + (xD['h'] >>> 16) + (xO >>> 16);
                    xz['l'] = xw & 65535 | xT << 16;
                    xz['h'] = xO & 65535 | xp << 16;
                }

                function xX(xz, xd, xD, xw, xT) {
                    var xO = (xd['l'] & 65535) + (xD['l'] & 65535) + (xw['l'] & 65535) + (xT['l'] & 65535);
                    var xp = (xd['l'] >>> 16) + (xD['l'] >>> 16) + (xw['l'] >>> 16) + (xT['l'] >>> 16) + (xO >>> 16);
                    var xm = (xd['h'] & 65535) + (xD['h'] & 65535) + (xw['h'] & 65535) + (xT['h'] & 65535) + (xp >>> 16);
                    var xF = (xd['h'] >>> 16) + (xD['h'] >>> 16) + (xw['h'] >>> 16) + (xT['h'] >>> 16) + (xm >>> 16);
                    xz['l'] = xO & 65535 | xp << 16;
                    xz['h'] = xm & 65535 | xF << 16;
                }

                function xU(xz, xd, xD, xw, xT, xO) {
                    var xp = (xd['l'] & 65535) + (xD['l'] & 65535) + (xw['l'] & 65535) + (xT['l'] & 65535) + (xO['l'] & 65535);
                    var xm = (xd['l'] >>> 16) + (xD['l'] >>> 16) + (xw['l'] >>> 16) + (xT['l'] >>> 16) + (xO['l'] >>> 16) + (xp >>> 16);
                    var xF = (xd['h'] & 65535) + (xD['h'] & 65535) + (xw['h'] & 65535) + (xT['h'] & 65535) + (xO['h'] & 65535) + (xm >>> 16);
                    var xG = (xd['h'] >>> 16) + (xD['h'] >>> 16) + (xw['h'] >>> 16) + (xT['h'] >>> 16) + (xO['h'] >>> 16) + (xF >>> 16);
                    xz['l'] = xp & 65535 | xm << 16;
                    xz['h'] = xF & 65535 | xG << 16;
                }

                return xu(xr)["toLowerCase"]();
            }(xC);
        }

        xk = xH(xk);

        function xE(xC) {
            return function (xr) {
                function xZ(xL) {
                    return xQ(xu(xV(xL)));
                }

                function xu(xL) {
                    var xB = xL;
                    var xW = Array(80);
                    var xg = 1732584193;
                    var xJ = -271733879;
                    var xP = -1732584194;
                    var xq = 271733878;
                    var xX = -1009589776;

                    for (var xU = 0; xU < xB["length"]; xU += 16) {
                        var xz = xg;
                        var xd = xJ;
                        var xD = xP;
                        var xw = xq;
                        var xT = xX;

                        for (var xO = 0; xO < 80; xO++) {
                            if (xO < 16) {
                                xW[xO] = xB[xU + xO];
                            } else {
                                xW[xO] = xh(xW[xO - 3] ^ xW[xO - 8] ^ xW[xO - 14] ^ xW[xO - 16], 1);
                            }

                            var xp = xl(xl(xh(xg, 5), xn(xO, xJ, xP, xq)), xl(xl(xX, xW[xO]), xS(xO)));
                            xX = xq;
                            xq = xP;
                            xP = xh(xJ, 30);
                            xJ = xg;
                            xg = xp;
                        }

                        xg = xl(xg, xz);
                        xJ = xl(xJ, xd);
                        xP = xl(xP, xD);
                        xq = xl(xq, xw);
                        xX = xl(xX, xT);
                    }

                    return new Array(xg, xJ, xP, xq, xX);
                }

                function xn(xL, xB, xW, xg) {
                    if (xL < 20) {
                        return xB & xW | ~xB & xg;
                    }

                    if (xL < 40) {
                        return xB ^ xW ^ xg;
                    }

                    if (xL < 60) {
                        return xB & xW | xB & xg | xW & xg;
                    }

                    return xB ^ xW ^ xg;
                }

                function xS(xL) {
                    return xL < 20 ? 1518500249 : xL < 40 ? 1859775393 : xL < 60 ? -1894007588 : -899497514;
                }

                function xl(xL, xB) {
                    var xW = (xL & 65535) + (xB & 65535);
                    var xg = (xL >> 16) + (xB >> 16) + (xW >> 16);
                    return xg << 16 | xW & 65535;
                }

                function xh(xL, xB) {
                    return xL << xB | xL >>> 32 - xB;
                }

                function xV(xL) {
                    var xB = (xL["length"] + 8 >> 6) + 1;
                    var xW = new Array(xB * 16);

                    for (var xg = 0; xg < xB * 16; xg++) {
                        xW[xg] = 0;
                    }

                    for (xg = 0; xg < xL["length"]; xg++) {
                        xW[xg >> 2] |= xL["charCodeAt"](xg) << 24 - (xg & 3) * 8;
                    }

                    return xW[xg >> 2] |= 128 << 24 - (xg & 3) * 8, xW[xB * 16 - 1] = xL["length"] * 8, xW;
                }

                function xQ(xL) {
                    var xB = "0123456789abcdef";
                    var xW = '';

                    for (var xg = 0; xg < xL["length"] * 4; xg++) {
                        xW += xB["charAt"](xL[xg >> 2] >> (3 - xg % 4) * 8 + 4 & 15) + xB["charAt"](xL[xg >> 2] >> (3 - xg % 4) * 8 & 15);
                    }

                    return xW;
                }

                return xZ(xr);
            }(xC);
        }

        return xk = xE(xk), xk;
    }

    //////////////////////////
    var xu = {};
    xu["versionCode"] = versionCode;
    xu["jsVersion"] = jsVersion;
    xu["jsCode"] = body["id"];
    xu["jsType"] = "d";
    xu["yodaVersion"] = JSON.parse(config["yodaVersion"])["d"];
    var xn = {};
    xn["env"] = xu;
    xn["body"] = body;
    var xS = xn;
    var xl = xS;
    var xh = IZ(xl);
    var xV = Kv(xh);
    let xk = "https://verify.meituan.com" + "/v2/ext_api/" + config["action"] + "/verify"
    var xQ = xk["indexOf"]("http") === 0 ? xk : '' + location["protocol"] + xk;
    var xL = "HTTPMethod=POST&Content-MD5=" + xV + "&Content-Type=" + "application/x-www-form-urlencoded" + "&Date=" + config.timestamp + "&Url=" + "https://verify.meituan.com/v2/ext_api/merchantlogin/verify";
    var auth = Iu(xL);
    return {
        body: body,
        headers: {
            Authencation: auth,
            TimesTamp: config.timestamp + "",
            'Content-Type': 'application/x-www-form-urlencoded',
            'User-Agent': fp_config.report.userAgent,
            'Origin': 'https://epassport.meituan.com',
            'Referer': 'https://epassport.meituan.com/',
            'yoda-language': 'zh-CN',
        }
    }
};

// const fs = require("fs");
// function verify_by_file(config, href = ""， referrer = "https://ecom.meituan.com/bizaccount/login.html?loginByPhoneNumber=true&isProduction=true&epassportParams=%3Fbg_source%3D1%26service%3Dcom.sankuai.meishi.fe.ecom%26part_type%3D0%26feconfig%3Dbssoify%26biz_line%3D1%26continue%3Dhttps%253A%252F%252Fecom.meituan.com%252Fbizaccount%252Fbiz-choice.html%253Fredirect_uri%253Dhttps%25253A%25252F%25252Fecom.meituan.com%25252Fmeishi%25252F%2526_t%253D1678415645931%2526target%253Dhttps%25253A%25252F%25252Fecom.meituan.com%25252Fmeishi%25252F%26leftBottomLink%3D%26signUpTarget%3Dself") {
//     config = config.data;
//     let result = get_slider_params(config, href, referrer);
//     let behavior = result.body.behavior;
//     let _token = result.body._token;
//     fs.writeFile(`${__dirname}/cache/behavior.txt`, behavior, () => {
//     })
//     fs.writeFile(`${__dirname}/cache/_token.txt`, _token, () => {
//     });
//     fs.writeFile(`${__dirname}/cache/params.json`, JSON.stringify(result), () => {
//     });
//     console.log(result);
// }


// module.exports = {
//     get_slider_params: get_slider_params
// }

// 本地生成

// fs.readFile(`${__dirname}/config.json`,'utf8',function(err,datastr){
//     console.log('读取成功', datastr);
//     verify_by_file(JSON.parse(datastr))
// })
